我有一个包含几列(17)的数据框。
第 2 列有几行具有相同的值,我只想保留其中一行,特别是第 17 列中具有最大值的行。
例如:
A B
'a' 1
'a' 2
'a' 3
'b' 5
'b' 200
Would return
A B
'a' 3
'b' 200
(加上其余的列)
到目前为止,我一直在使用 unique 函数,但我认为它会随机保留一个或仅保留第一个出现的函数。
** 更新 **
真实数据有376000行。我已经尝试过 data.table 和 ddply 建议,但它们需要很长时间。知道哪个最有效吗?
使用包的解决方案data.table
:
set.seed(42)
dat <- data.frame(A=c('a','a','a','b','b'),B=c(1,2,3,5,200),C=rnorm(5))
library(data.table)
dat <- as.data.table(dat)
dat[,.SD[which.max(B)],by=A]
A B C
1: a 3 0.3631284
2: b 200 0.4042683
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)