【发布时间】:2023-03-24 01:55:01
【问题描述】:
您也许可以帮助我:对于每个 ID,我希望提取具有最大“b”值的最大“a”值。换句话说,我希望扫描“b”值,找出最高的(这里 b=40)。 如果几个“a”具有相同的最高“b”值(这里a=20和a=30),那么我希望选择最高的“a”值(这里a=30)。
这是我到目前为止所做的:
df<- data.frame(ID=c('1','1','1','1','1','1'), a=c('10','20','30','10','2','30'), b=c('10','20','30','10','40', "40"))
library(plyr)
opt <- ddply(df,.(ID),summarise,
a=a[which.max(b)])
opt
ID a
1 2
但是,我不明白:
ID a
1 30
非常感谢您的建议。请注意,与此示例数据集相反,我处理的实际数据集非常大。非常感谢!
【问题讨论】:
-
which.max为您提供索引。对于值,只需使用max。