R中两个相等的最大值

阿法塔·汗(Aftab Khan)

我有一个带有一些数字(分数)和重复ID的数据框。我想获得每个ID的最大值。我用了这个功能

top = aggregate(df$score, list(df$ID),max)

这为我返回了一个顶部数据帧,其最大值对应于每个ID。

但是碰巧对于一个ID,我们有两个EQUAL最大值。但是此函数忽略了第二个值。

有什么办法可以同时保留两个最大值吗?

例如:

df

ID   score
1    12
1    15
1    1
1    15
2    23
2    12
2    13

上面的函数给了我这个:顶部

ID    Score
1     15
2     23

我需要这个:顶部

ID   Score
1    15
1    15
2    23
数学咖啡

我推荐data.table克里斯(Chris)提到的(速度不错,但学习曲线更陡峭)。或者,如果您不希望data.table使用,可以使用plyr

library(plyr)
ddply(df, .(ID), subset, score==max(score))
# same as ddply(df, .(ID), function (x) subset(x, score==max(score)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章