我有一个数据集,包含多年来各个人的数据(id)
我想查看每年的情况,并找出当年个人的平均分数。
id year score
2 2011 1
2 2011 3
2 2012 4
3 2008 4
54 2011 3
45 2011 3
45 2011 3
如果我想为2011年分组,那么将返回以下内容
id year score
2 2011 1
2 2011 3
54 2011 3
45 2011 3
45 2011 3
平均值只是2011年得分的频率(5)/不同身份证的数量(3)= 5/3 = 1.666
如何在代码中为1000行的数据集执行此操作?
答案 0 :(得分:1)
您还可以使用基本R函数执行此操作:
within(dat[idx <- dat$year == 2011, ], average <- length(unique(id)) / sum(idx))
# id year score average
# 1 2 2011 1 0.6
# 2 2 2011 3 0.6
# 5 54 2011 3 0.6
# 6 45 2011 3 0.6
# 7 45 2011 3 0.6