15

前回、複数の回答者に対して繰り返し測定された変数(procras)の測定機会(週)ごとの平均スコアをどのように計算できるかを尋ねました。したがって、長い形式の私の (簡略化された) データセットは、たとえば次のようになります (ここでは、2 人の学生と 5 つの時点、グループ化変数なし)。

studentID  week   procras
   1        0     1.4
   1        6     1.2
   1        16    1.6
   1        28    NA
   1        40    3.8
   2        0     1.4
   2        6     1.8
   2        16    2.0
   2        28    2.5
   2        40    2.8

dplyr を使用すると、測定機会ごとに平均スコアが得られます

mean_data <- group_by(DataRlong, week)%>% summarise(procras = mean(procras, na.rm = TRUE))

次のようになります。

Source: local data frame [5 x 2]
        occ  procras
      (dbl)    (dbl)
    1     0 1.993141
    2     6 2.124020
    3    16 2.251548
    4    28 2.469658
    5    40 2.617903

ggplot2 を使用すると、経時的な平均変化をプロットできるようになり、dplyr の group_data() を簡単に調整することで、サブグループごとの平均値 (たとえば、男性と女性の機会ごとの平均スコア) を取得することもできます。ここで、機会ごとの平均スコア周辺の 95% CI の長さを含む列を mean_data テーブルに追加したいと思います。

http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/は、CI を取得してプロットする方法を説明していますが、このアプローチは、任意のサブグループに対してこれを実行したいと思うとすぐに問題になるようですよね? dplyr に CI (グループサイズなどに基づく) を mean_data に自動的に含める方法はありますか? その後、新しい値をCIとしてグラフにプロットするのはかなり簡単になるはずです。ありがとうございました。

4

5 に答える 5

28

mutateいくつかの追加機能を使用して手動で行うことができますsummarise

library(dplyr)
mtcars %>%
  group_by(vs) %>%
  summarise(mean.mpg = mean(mpg, na.rm = TRUE),
            sd.mpg = sd(mpg, na.rm = TRUE),
            n.mpg = n()) %>%
  mutate(se.mpg = sd.mpg / sqrt(n.mpg),
         lower.ci.mpg = mean.mpg - qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg,
         upper.ci.mpg = mean.mpg + qt(1 - (0.05 / 2), n.mpg - 1) * se.mpg)

#> Source: local data frame [2 x 7]
#> 
#>      vs mean.mpg   sd.mpg n.mpg    se.mpg lower.ci.mpg upper.ci.mpg
#>   (dbl)    (dbl)    (dbl) (int)     (dbl)        (dbl)        (dbl)
#> 1     0 16.61667 3.860699    18 0.9099756     14.69679     18.53655
#> 2     1 24.55714 5.378978    14 1.4375924     21.45141     27.66287
于 2016-03-12T06:05:10.593 に答える