這可能是一個愚蠢的問題,但我已經通讀了Crawley關於數據框的章節,並搜索了互聯網,但尚未能做出任何工作。基於特定因子組合對行進行求和
這是與我相似的樣本數據集:
> data<-data.frame(site=c("A","A","A","A","B","B"), plant=c("buttercup","buttercup",
"buttercup","rose","buttercup","rose"), treatment=c(1,1,2,1,1,1),
plant_numb=c(1,1,2,1,1,2), fruits=c(1,2,1,4,3,2),seeds=c(45,67,32,43,13,25))
> data
site plant treatment plant_numb fruits seeds
1 A buttercup 1 1 1 45
2 A buttercup 1 1 2 67
3 A buttercup 2 2 1 32
4 A rose 1 1 4 43
5 B buttercup 1 1 3 13
6 B rose 1 2 2 25
我想要做的是創造一個「種子」和「水果」相加的場景,每當唯一的站點&廠&治療& plant_numb組合存在。理想情況下,這將導致減少的行,但原列的保全(即我需要上面的例子是這樣:)
site plant treatment plant_numb fruits seeds
1 A buttercup 1 1 3 112
2 A buttercup 2 2 1 32
3 A rose 1 1 4 43
4 B buttercup 1 1 3 13
5 B rose 1 2 2 25
這個例子是非常基本的(我的數據集〜5000行),雖然在這裏你只看到需要求和的兩行,但需要求和的行數是不同的,範圍從1到45。
我已經嘗試了rowsum()和tapply(),迄今爲止的結果很糟糕(錯誤告訴我這些函數對於因素沒有意義),所以如果你甚至可以指向正確的方向,我將不勝感激!
非常感謝!
看看'plyr'和'data.table'標籤。很多問題基本上解決了這個問題。祝你好運! – Chase
另請參閱http://4dpiecharts.com/2011/12/16/a-quick-primer-on-split-apply-combine-problems/ –