我正在尝试聚合数字变量,同时根据数字变量的最大值保留字符串变量。
dat<-data.frame(Group=rep(1:2, each=3), Score=c(1,2,3,4,3,1), Info=c("a","b","c","d","e","f"))
dat
Group Score Info
1 1 1 a
2 1 2 b
3 1 3 c
4 2 4 d
5 2 3 e
6 2 1 f
我期望得到结果:
Group Score Info
1 1 6 c
2 2 8 d
我试的是这个:
maxs <- aggregate(Score ~ Group, data = dat, FUN = max)
#sums <- aggregate(Score ~ Group, data = dat, FUN = sum) #???
merge(maxs, dat)
Group Score Info
1 1 3 c
2 2 4 d
效果很好,但是当我尝试时:
merge(sums, dat)
除了:
[1] Group Score Info
<0 rows> (or 0-length row.names)
我似乎明白 maxs 只选择每组的一行,而 sums 会处理每组内的所有案例。我错过了代码什么?提前致谢!