Мой вопрос очень похож на тот, который представлен ниже, однако я хочу добавить дополнительную команду, чтобы возвращать только случаи, когда последовательность имеет более двух последовательных значений.Считайте последовательные значения в группах с условием с dplyr и rle
Как подсчитать количество последовательных «успехов» (т. Е. 1 в $ consec), когда заданная последовательность работает с более чем двумя последовательными числами в пределах данной эры и данного года?
Аналогичный вопрос: Summarize consecutive failures with dplyr and rle . Для сравнения, я изменил пример, использованный в этом вопросе:
library(dplyr)
df <- data.frame(Era=c(1,1,1,1,1,1,1,1,1,1),Year = c(1,2,2,3,3,3,3,3,3,3), consec = c(0,0,1,0,1,1,0,1,1,1))
df %>%
group_by(Era,Year) %>%
do({tmp <- with(rle(.$consec==1), lengths[values])
data.frame(Year= .$Year, Count=(length(tmp)))}) %>%
slice(1L)
> Source: local data frame [3 x 3]
> Groups: Era, Year
> Era Year Count
> 1 1 1 0
> 2 1 2 1
> 3 1 3 2
>
Все, что мне теперь нужно добавить условие, чтобы включать только случаи последовательных чисел в последовательности> 2. Желаемый результат:
> Source: local data frame [3 x 3]
> Groups: Era, Year
> Era Year Count
> 1 1 1 0
> 2 1 2 0
> 3 1 3 1
Любые советы были бы весьма признательны.