96722


データは年齢と幸福度になります。  
年代別の箱ひげ図をRで作成したいです。  
私の想定としては、以下の二つが必要だと思っています。  
・年齢を20～29などに設定し、まず年代別にする。  
・箱ひげ図をそれぞれの年代でプロットするようにする。

[code]

    #hensuu1 <- age, hensuu2 <- kouhukudo
    ggplot(data, aes(x = hensuu1, y = hensuu2)) +
      geom_boxplot()
    
[/code]

上記コードを試しましたが、条件を定めていないため、上手くいきませんでした。

[![画像の説明をここに入力](https://i.stack.imgur.com/dS2r8.png)](https://i.stack.imgur.com/dS2r8.png)

下記のようなグラフが理想です。

[![理想のグラフ](https://i.stack.imgur.com/Yz3Ub.png)](https://i.stack.imgur.com/Yz3Ub.png)


CC BY-SA 4.0
2023-11-08T08:01:59.540
96712
2023-11-10T10:50:28.733
2023-11-08T09:52:57.240
3060
52631
question
r rstudio ggplot2
R言語でデータを年代別にし、箱ひげ図を作成したい


[base::cut()](https://search.r-project.org/R/refmans/base/html/cut.html)
関数を使って「年代」列を追加し，それを使って描画する記述例を示します。

なお，最後の `theme_bw()` の行は環境に合わせて変更または（前行の `+` も含めて）削除してください。

[code]

    library(ggplot2)
    
    set.seed(113)
    data <- data.frame(年齢 = sample(20:59, 100, replace=TRUE),
                       幸福度 = rnorm(100, mean=3.0, sd=0.6))
    
    data$年代 <- cut(data$年齢, breaks = c(20, 30, 40, 50, 60),
                     labels = c("20代", "30代", "40代", "50代"),
                     right=FALSE)
    
    ggplot(data, aes(x=年代, y=幸福度)) +
        geom_boxplot() +
        coord_cartesian(ylim=c(1, 5)) +
        labs(x="年代", y="幸福度") +
        theme_bw(base_family="HiraginoSans-W3", base_size=14)
    
[/code]

[![描画結果](https://i.stack.imgur.com/yemY4.png)](https://i.stack.imgur.com/yemY4.png)


CC BY-SA 4.0
2023-11-09T01:48:27.060
96722
2023-11-09T01:48:27.060
54588
96712
answer


承認済の回答を参考にし、望み通りの動きになりました。

[code]

    # ライブラリ
    library(dplyr)
    library(ggplot2)
    
    # データから必要な列を抜き出し、データフレームを作成
    data <- data.frame(年齢 = , #元データの年齢の列に指定
                       幸福度 = #元データの幸福度の列に指定
                       )
    
    # 年齢を年代別にし、”年代”の列を追加
    data <- data %>%
      mutate(年代 = cut(data$年齢, breaks = c(0, 20, 30, 40, 50, 60, 70, 80, 90, Inf),
                      labels = c("10代", "20代", "30代", "40代", "50代", 
                                 "60代", "70代", "80代", "90代"),
                      right = FALSE))
    
    # 箱ひげ図作成
    ggplot(data, aes(x = 年代, y = 幸福度)) +
      geom_boxplot() +
      labs(title = "年齢別の幸福度箱ひげ図", x = "年代", y = "幸福度")
    
[/code]


CC BY-SA 4.0
2023-11-10T10:43:36.280
96738
2023-11-10T10:50:28.733
2023-11-10T10:50:28.733
52631
52631
96712
answer