2013-07-31 8 views
0

내가 데이터 프레임rollapply가 TRUE로 평가되는 행의 집합을 추출 하시겠습니까?

df <- data.frame(A=c(1,3,1,4,2,2,5,3,1,7,8),b=c(10:20),c=c(20:30)) 

을 말해봐 내가 누구의 합이 열 A 4.

내가 패키지 zoo에서 rollapply로를 통해 실행할 수 있습니다 쉽게 있는지 확인 모든 연속 행을 추출 할 이

rollapply(df$A,2,function(x)(ifelse(sum(x)==4,print("YES"),print("NO")))) 

와 그러한 행은하지만 난 그냥이 조건이 true 인 행을 꺼내 다른 데이터 프레임에 넣어 수 있도록하려면

sum4 <- data.frame(A=c(1,3,1,2,2,3,1),B=c(10,11,12,14,15,17,18),C=c(20,21,22,24,25,27,28)) 

이 경우 가능합니까?

답변

3

저장 뭔가 같은 롤링 합계의 결과는 다음 해당 금액의 == 4는 일이 그 (row, row+1)

rs2 <- with(df,rollapply(A, 2, sum, fill = NA)) 
s4 <- sort(unique(c(s4 <- which(rs2==4),s4+1))) 
subset the appropriate rows 
df[s4,] 
# A b c 
# 1 1 10 20 
# 2 3 11 21 
# 3 1 12 22 
# 5 2 14 24 
# 6 2 15 25 
# 8 3 17 27 
# 9 1 18 28 
+0

을 기반으로하는 행을 포함하는 벡터를 구축합니다. 무리 감사! – yawgeh

관련 문제