为了账号安全,请及时绑定邮箱和手机立即绑定

计算组平均值(或其他汇总统计数据)并将其分配给原始数据。

计算组平均值(或其他汇总统计数据)并将其分配给原始数据。

眼眸繁星 2019-06-12 17:05:58
计算组平均值(或其他汇总统计数据)并将其分配给原始数据。我想计算一下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,G.FUN = min:

df$grp.min <- ave(df$value, df$group, FUN = min)


查看完整回答
反对 回复 2019-06-12
?
慕田峪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


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 788 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信