以每个ID聚合R但保持ID重复

时间:2016-09-28 04:45:33

标签: r

如果我有桌子

ID  1 1 1 2 2
N.  3 2 1 1 1

我希望获得相同数量的行,但是新列将是每个ID的N的平均值。

ID            1. 1 1 2 2
N.            3  2 1 1 1
Mean(N)       2  2 2 1 1

如何在R?

中做到这一点

2 个答案:

答案 0 :(得分:-1)

我们可以使用ave。默认情况下,FUNmean,因此我们无需指定它。

df1$Mean <- with(df1, ave(N, ID))

答案 1 :(得分:-1)

另一种方式:

df
  ID N
1  1 3
2  1 2
3  1 1
4  2 1
5  2 1

df$Mean <- rep(aggregate(N~ID, df, mean)[,2], table(df$ID))

df
  ID N Mean
1  1 3    2
2  1 2    2
3  1 1    2
4  2 1    1
5  2 1    1