I want to filter group id after two consecutive "yes" values observed only.
DT<-data.frame(id=c(1,1,1,2,2,2,2,3,3,3,3,3,3,3),
type=c("yes","yes","no","no","yes","yes","no","no","yes","no","yes","yes","no","yes"))
Desired output:
id type
1 yes
1 yes
1 no
2 yes
2 yes
2 no
3 yes
3 yes
3 no
3 yes
I tried it as:
DT<-DT %>% group_by(id) %>%
mutate(Tlag = lag(type), ident = type == 'yes' & Tlag == 'yes' ) %>%
filter(any(ident)) %>% filter(type == 'yes' | (cumsum(type == 'yes') == 1)) %>% select(-ident)