Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 删除包含值的行后面的所有行_R - Fatal编程技术网

R 删除包含值的行后面的所有行

R 删除包含值的行后面的所有行,r,R,我试图删除一个或多个值之后的所有行,但遇到了一些问题 我想做与此相反的事情: 使用上述问题中的示例数据帧: (dat<-data.frame(a= c("pete", "mike", "bob", "bart", "bob"), b=c(1,2,3,4,5), c=c("home", "away", "home", "aw

我试图删除一个或多个值之后的所有行,但遇到了一些问题

我想做与此相反的事情:

使用上述问题中的示例数据帧:

(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
以下是我到目前为止所做的尝试:

dat %>% slice(which.min(a == "bob") : n())
但是不像.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max.max

library(dplyr)
dat %>% 
     slice(seq(which.max(a == 'bob')))

或使用
cumsum

dat %>% 
    filter(lag(cumsum(a == 'bob'), default = 0) < 1)
使用
行编号()

库(dplyr)
dat%>%过滤器(row_number()尝试
dat%>%切片(1:which.max(a==“bob”))
dat %>% 
    filter(lag(cumsum(a == 'bob'), default = 0) < 1)
dat[seq_len(match('bob', dat$a)),]
library(dplyr)
dat %>% filter(row_number() <= match('bob', a))

#     a b    c
#1 pete 1 home
#2 mike 2 away
#3  bob 3 home