2014-01-22 4 views
-1

나는 다음 방법으로 약 보이는 날짜 프레임이 있습니다앞의 행에 새 데이터 프레임을 추가하는 방법! R

x<-c(0,0,0,0,0,1,1,1,0,1,0) 
y<-c(12,12,3,45,6,5,63,2,3,4,5) 
z<-data.frame(x,y) 
z 
# x y 
#1 0 12 
#2 0 12 
#3 0 3 
#4 0 45 
#5 0 6 
#6 1 5 
#7 1 63 
#8 1 2 
#9 0 3 
#10 1 4 
#11 0 5 

내가 1에 동일 x의 행을 찾을 함수 나 루프를 실행하고 새로운 데이터 프레임에 추가 할을이 행과 4 개의 앞의 행.

하여 인덱스 생성 할
+0

'(Z $으로의 X 제외 인덱싱을 피하기를 == 1)'x가 1 인 인덱스를 제공합니다.이 모든 인덱스에 대해 앞의 네 행을 원하십니까? – user1981275

+0

의견을 주셔서 감사합니다. 네 각각에 대해 정확히 같습니다. – Jack

+0

4 개의 데이터 프레임 ('z'의 6,7,8,10 행에있는 데이터 프레임)을 원하십니까? 그러면 당신은 할 수있다 :'lapply (which (z $ x == 1), function (x) z [(x-4) : x,])'. 아니면 마지막에 단 하나의 데이터 프레임 만 갖고 싶습니까? – user1981275

답변

0

작은 수정과 @ user1981275 용액에 작은 리프가

l <- lapply(which(z$x==1), function(x) { 
    z[(ifelse(x-4 < 1, 1, x-4)):x,] 
}) 
do.call(rbind, l) 
+0

그게 사실 내가 뭘 찾았는지 .. – Jack

+0

죄송합니다, 귀하의 의견을 이해하지 못합니다. –

1

: 선행하는 행이없는 경우

z[sapply(which(as.logical(z$x)), function(x) seq(x - 4, x)), ] 
관련 문제