计算组平均值(或其他汇总统计数据)并将其分配给原始数据。我想计算一下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条经验 获得超7个赞
一种选择是使用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 关注
- 788 浏览
添加回答
举报
0/150
提交
取消