計算組平均值(或其他匯總統計數據)并將其分配給原始數據。我想計算一下mean(或任何其他長度為1的簡要統計數字,如min, max, length, sum)在分組變量(“group”)的每個級別中的數值變量(“value”)。摘要統計量應該分配給一個新變量,該變量具有同長就像原始數據..也就是說,原始數據的每一行都應該有一個與當前組值相對應的值-數據集應該不每組折疊為一行。例如,考慮組mean:以前id group value1 a 102 a 203 b 1004 b 200后id group value grp.mean.values1 a 10 152 a 20 153 b 100 1504 b 200 150
3 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
ave
df$grp.mean.values <- ave(df$value, df$group)
ave
FUN = your-desired-function
FUN = min
:
df$grp.min <- ave(df$value, df$group, FUN = min)

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
一種選擇是使用plyr. ddply期望data.frame(第一個d)并返回data.frame(第二個d)。其他XXply函數以類似的方式工作;ldply期望list并返回data.frame, dlply相反的.等等。第二個參數是分組變量。第三個參數是我們要為每個組計算的函數。
require(plyr)
ddply(dat, "group", transform, grp.mean.values = mean(value))
id group value grp.mean.values
1 1 a 10 15
2 2 a 20 15
3 3 b 100 150
4 4 b 200 150
- 3 回答
- 0 關注
- 822 瀏覽
添加回答
舉報
0/150
提交
取消