id和日期的子集

时间:2014-10-15 22:57:46

标签: r date subset mean

我有一个数据集,包含多年来各个人的数据(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行的数据集执行此操作?

1 个答案:

答案 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