У меня есть фрейм данных:
df <- data.frame(
Group=c('A','A','A','A','B','B','B','B'),
Activity = c('EOSP','NOR','EOSP','COSP','NOR','EOSP','WL','NOR'),
TimeLine=c(1,2,3,4,1,2,3,4)
)
Я хочу отфильтровать только для два действия для каждой группы и в порядке, в котором я фильтрую.Например, я ищу только действия EOSP
и NOR
, но и в порядке.Этот код:
df %>% group_by(Group) %>%
filter(all(c('EOSP','NOR') %in% Activity) & Activity %in% c('EOSP','NOR'))
приводит к:
# A tibble: 6 x 3
# Groups: Group [2]
Group Activity TimeLine
<fct> <fct> <dbl>
1 A EOSP 1
2 A NOR 2
3 A EOSP 3
4 B NOR 1
5 B EOSP 2
6 B NOR 4
Я не хочу строку 3, так как EOSP
происходит после NOR
.Аналогично для группы B я не хочу строку 4, так как NOR
происходит до EOSP
.Как мне этого добиться?