Eu gostaria de filtrar para remover todas as linhas antes da primeira vez que um determinado valor em uma coluna específica apareça. Por exemplo, no quadro de dados abaixo, gostaria de remover todas as linhas antes de bob
aparecer na coluna a
pela primeira vez. Observe que o valor de bob
repete uma segunda vez -Eu só quero remover as linhas antes que bob
apareça a primeira vez .
(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
Quero que o quadro de dados resultante se pareça com o seguinte:
a b c
1 bob 3 home
2 bart 4 away
3 bob 5 gone
dplyr
maneira de usar 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
que na base R seria
dat[which.max(dat$a == "bob") : nrow(dat), ]
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras