gpt4 book ai didi

r - R中两个相等的最大值

转载 作者:行者123 更新时间:2023-12-04 10:53:59 25 4
gpt4 key购买 nike

我有一个包含一些数字(分数)和重复 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

最佳答案

我推荐 Chris 提到的 data.table(有利于提高速度,但学习曲线更陡峭)。或者,如果您不想要 data.table,您可以使用 plyr:

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

关于r - R中两个相等的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31308313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com