gpt4 book ai didi

r - 过滤以在特定列中的特定值第一次出现之前删除所有行

转载 作者:行者123 更新时间:2023-12-03 18:35:01 28 4
gpt4 key购买 nike

我想在特定列中的特定值第一次出现之前过滤以删除所有行。例如,在下面的数据框中,我想在 bob 第一次出现在 a 列中之前删除所有行。请注意 bob 的值第二次重复 - 我只想在第一次 bob 出现之前删除行。

(dat<-data.frame(a= c("pete", "mike", "bob", "bart", "bob"), b=c(1,2,3,4,5), c=c("home", "away", "home", "away", "gone")))
a b c
1 pete 1 home
2 mike 2 away
3 bob 3 home
4 bart 4 away
5 bob 5 gone

我希望生成的数据框如下所示:
   a   b  c
1 bob 3 home
2 bart 4 away
3 bob 5 gone

最佳答案

dplyr 使用 slice 的方式。

library(dplyr)
dat %>% slice(which.max(a == "bob") : n())

# a b c
#1 bob 3 home
#2 bart 4 away
#3 bob 5 gone

这在基础 R 中将是
dat[which.max(dat$a == "bob") : nrow(dat), ]

关于r - 过滤以在特定列中的特定值第一次出现之前删除所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55626654/

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