我想開始使用dplyr來代替ddply,但是我無法獲得它如何工作的句柄(我已閱讀文檔)。當使用group_by(多個變量)時dplyr問題
例如,爲什麼當我嘗試mutate()時,「group_by」函數不工作,因爲它應該是?
看着mtcars:
庫(車)
說我做一個data.frame是mtcars的總結,通過 「共青團」 和 「齒輪」 分組:
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))
,然後獲得第二個DF:
df2 <- ddply(df1, .(cyl), summarise, newvar2 = sum(newvar) + 5)
但是,同樣的方法,總結()函數中sum(newvar)+ 5與dplyr不起作用...
您能給我們與'ddply'等價的'plyr'代碼嗎? – dickoa
你是什麼意思「未分組」?你在哪裏期待每組一行?或者你期望來自同一個組的所有行在彼此之下? – flodel
我期望第二個df只有三行(每個cyl有一行),因爲它看起來像我剛剛在編輯中添加的ddply參數...我認爲這只是在某處添加一個參數的問題錯過了? –