gpt4 book ai didi

r - 如何按 A 列在 R 中生成唯一值并在 B 列中保留最大值的行

转载 作者:行者123 更新时间:2023-12-04 11:20:02 25 4
gpt4 key购买 nike

我有一个包含几列 (17) 的 data.frame。
第 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

关于r - 如何按 A 列在 R 中生成唯一值并在 B 列中保留最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14335733/

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