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

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

我想计算一下mean(或任何其他长度为1的简要统计数字,如min, max, length, sum)在分组变量(“group”)的每个级别中的数值变量(“value”)。


摘要统计量应该分配给一个新变量,该变量具有同长就像原始数据..也就是说,原始数据的每一行都应该有一个与当前组值相对应的值-数据集应该不每组折叠为一行。例如,考虑组mean:


以前


id  group  value

1   a      10

2   a      20

3   b      100

4   b      200


id  group  value  grp.mean.values

1   a      10     15

2   a      20     15

3   b      100    150

4   b      200    150


眼眸繁星
浏览 789回答 3
3回答

慕的地10843

看一下ave功能。有点像df$grp.mean.values&nbsp;<-&nbsp;ave(df$value,&nbsp;df$group)如果你想用ave要计算每个组的其他内容,需要指定FUN = your-desired-function,G.FUN = min:df$grp.min&nbsp;<-&nbsp;ave(df$value,&nbsp;df$group,&nbsp;FUN&nbsp;=&nbsp;min)

慕田峪9158850

一种选择是使用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))&nbsp; id group value grp.mean.values1&nbsp; 1&nbsp; &nbsp; &nbsp;a&nbsp; &nbsp; 10&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 152&nbsp; 2&nbsp; &nbsp; &nbsp;a&nbsp; &nbsp; 20&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 153&nbsp; 3&nbsp; &nbsp; &nbsp;b&nbsp; &nbsp;100&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1504&nbsp; 4&nbsp; &nbsp; &nbsp;b&nbsp; &nbsp;200&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;150
打开App,查看更多内容
随时随地看视频慕课网APP