2
제 질문은 아래에있는 것과 매우 유사합니다. 그러나 시퀀스에 2 개 이상의 연속 값이있는 경우에만 반환하는 추가 명령을 추가하고 싶습니다.dplyr 및 rle을 사용하여 조건이있는 그룹의 연속 값을 계산하십시오.
주어진 시퀀스 실행에 주어진 연대와 주어진 연도 내에서 연속 된 숫자가 두 개 이상 연속 될 때 연속 된 "성공"수를 계산합니까?
비슷한 질문 : Summarize consecutive failures with dplyr and rle . 지금 필요한 것은> 2의 순서로 연속 번호의 경우를 포함하는 조건을 추가하는 것입니다
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
>
: 비교를 위해, 나는 그 질문에 사용되는 예를 수정했습니다. 원하는 결과 :
> 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
어떤 조언을 주시면 감사하겠습니다.