我一直在尝试通过查看其他帖子来处理我的数据,但是我一直遇到错误。我的数据 new
看起来像这样:
id year name gdp
1 1980 Jamie 45
1 1981 Jamie 60
1 1982 Jamie 70
2 1990 Kate 40
2 1991 Kate 25
2 1992 Kate 67
3 1994 Joe 35
3 1995 Joe 78
3 1996 Joe 90
我希望通过id选择年份值最高的行。因此,我们需要输出以下内容:
id year name gdp
1 1982 Jamie 70
2 1992 Kate 67
3 1996 Joe 90
我从选择包含每日最大值的行中尝试了以下操作,但并没有起作用
ddply(new,~id,function(x){x[which.max(new$year),]})
我也尝试过。
tapply(new$year, new$id, max)
但是这并没有给我想要的输出结果。 任何建议都将非常有帮助!
split
+lapply
重新创建by
。 - thelatemail