gpt4 book ai didi

根据第二列条件删除重复项

转载 作者:行者123 更新时间:2023-12-03 00:00:34 24 4
gpt4 key购买 nike

我正在尝试根据不同列上的最大值从数据框中删除重复行

因此,对于数据框:

df<-data.frame (rbind(c("a",2,3),c("a",3,4),c("a",3,5),c("b",1,3),c("b",2,6),c("r",4,5))
colnames(df)<-c("id","val1","val2")

id val1 val2

a 2 3

a 3 4

a 3 5

b 1 3

b 2 6

r 4 5

我想继续按 id 删除所有重复项,条件是对于相应的行,它们没有 val2 的最大值。

因此数据框应变为:

  a    3    5

b 2 6

r 4 5

-> 删除所有重复项,但保留子集 df$val2 的最大值的行(df, df$id=="a")

最佳答案

使用基础R。这里,列是因素。确保将其转换为数字

 df$val2 <- as.numeric(as.character(df$val2))
df[with(df, ave(val2, id, FUN=max)==val2),]
# id val1 val2
#3 a 3 5
#5 b 2 6
#6 r 4 5

或者使用dplyr

 library(dplyr)
df %>%
group_by(id) %>%
filter(val2==max(val2))
# id val1 val2
#1 a 3 5
#2 b 2 6
#3 r 4 5

关于根据第二列条件删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962909/

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