ddply の代わりに dplyr の使用を開始したいのですが、それがどのように機能するかを理解できません (ドキュメントを読みました)。
たとえば、何かを mutate() しようとすると、「group_by」関数が想定どおりに機能しないのはなぜですか?
mtcars を見る:
図書館(車)
「cyl」と「gear」でグループ化された mtcars の要約である data.frame を作成するとします。
df1 <- mtcars %.%
group_by(cyl, gear) %.%
summarise(
newvar = sum(wt)
)
次に、このデータフレームをさらに要約したいとします。ddply を使用すると簡単ですが、dplyr を使用しようとすると、実際には「グループ化」されません。
df2 <- df1 %.%
group_by(cyl) %.%
mutate(
newvar2 = newvar + 5
)
グループ化されていない出力が得られます。
cyl gear newvar newvar2
1 6 3 6.675 11.675
2 4 4 19.025 24.025
3 6 4 12.375 17.375
4 6 5 2.770 7.770
5 4 3 2.465 7.465
6 8 3 49.249 54.249
7 4 5 3.653 8.653
8 8 5 6.740 11.740
構文に何か問題がありますか?
編集:
これを plyr と ddply で行う場合:
df1 <- ddply(mtcars, .(cyl, gear), summarise, newvar = sum(wt))
次に、2 番目の df を取得します。
df2 <- ddply(df1, .(cyl), summarise, newvar2 = sum(newvar) + 5)
しかし、summarise() 関数で sum(newvar) + 5 を使用した同じアプローチは、dplyr では機能しません...