171

dplyr-syntax に少し苦労しています。さまざまな変数と 1 つのグループ化変数を持つデータ フレームがあります。ここで、R で dplyr を使用して、各グループ内の各列の平均を計算したいと思います。

df <- data.frame(
    a = sample(1:5, n, replace = TRUE), 
    b = sample(1:5, n, replace = TRUE), 
    c = sample(1:5, n, replace = TRUE), 
    d = sample(1:5, n, replace = TRUE), 
    grp = sample(1:3, n, replace = TRUE)
)
df %>% group_by(grp) %>% summarise(mean(a))

これにより、「grp」で示される各グループの列「a」の平均が得られます。

私の質問は、各グループ内の各列の平均を一度に取得することは可能ですか? df %>% group_by(grp) %>% summarise(mean(a))または、列ごとに繰り返す必要がありますか?

私が持ちたいのは次のようなものです

df %>% group_by(grp) %>% summarise(mean(a:d)) # "mean(a:d)" does not work
4

5 に答える 5

39

より多くの引数を単純に渡すことができますsummarise:

df %>% group_by(grp) %>% summarise(mean(a), mean(b), mean(c), mean(d))

ソース: ローカル データ フレーム [3 x 5]

  grp  mean(a)  mean(b)  mean(c) mean(d)
1   1 2.500000 3.500000 2.000000     3.0
2   2 3.800000 3.200000 3.200000     2.8
3   3 3.666667 3.333333 2.333333     3.0
于 2014-02-08T10:45:51.577 に答える