2014-03-25 2 views
0

행 인덱스가 다른 열의 값에 종속적 인 데이터 프레임 열의 값을 참조하고자합니다.R 데이터 프레임의 간접 참조

예 : R 데이터 프레임에

=INDIRECT("B"&(ROW(B2)+C2)) 

가 어떻게이 작업을 수행 할 수 있습니다 Excel에서

value lag laggedValue 
1  1  2 
2  2  4 
3  3  6 
4  2  6 
5  1  6 
6  3  9 
7  3  10 
8  1  9 
9  1  10 
10  2 

내가 "laggedValue"열이 공식을 사용합니까?

감사합니다.

+0

'B'열과 'C'열을 명시 적으로 지정할 수 있습니까? – Chris

+1

그냥'value'와'lag'을 추가하는 것처럼 보입니다. – rawr

+0

Ok, 죄송합니다, 나는 질문을 게시 할 때 급하게 서있었습니다. 열 B는 "값"이고 C는 "지연"입니다. laggedValue는 값과 지연의 합계가 아니라 "지연"에 표시된 행 수보다 뒤쳐진 "value"열의 항목입니다. 어리석은보기, 나는 동의한다. 더 구체적 일 것임에 틀림 없다. josilber는 어쨌든 제대로했습니다. 감사! – user3460194

답변

0
관련된 지연 값이 value(r+lag[r]) 번째 요소는 새 열을 만들려고하는 것처럼 보이는 lag[r]와 행 r를 들어

(또는 이것이 범위를 벗어나는 경우 누락 된 값). 당신은이 작업을 수행 할 수 있습니다 :

dat$laggedValue <- dat$value[seq(nrow(dat)) + dat$lag] 
dat 
    value lag laggedValue 
1  1 1   2 
2  2 2   4 
3  3 3   6 
4  4 2   6 
5  5 1   6 
6  6 3   9 
7  7 3   10 
8  8 1   9 
9  9 1   10 
10 10 2   NA 

다른 댓글이 value의 열은 1 ~ 10의 요소를 가지고 있기 때문에 그냥 valuelag 열을 추가하는 것처럼 보이는 것을 언급하고 있지만 경우에이 솔루션도 작동됩니다 value 열에는 다른 데이터가 저장되어 있습니다.

+0

이것이 바로 제가 지금 꽤 오랫동안 찾고 있었던 것이라고 생각합니다. 내일 진짜 데이터로 시도해 보겠습니다. 고마워요! – user3460194

0

여기 @rawr 같은 일을 가정 :

dat <- data.frame(value=c(1:10), 
        lag=c(1,2,3,2,1,3,3,1,1,2)) 

dat$laggedValue <- dat$value + dat$lag 
dat 
    value lag laggedValue 
1  1 1   2 
2  2 2   4 
3  3 3   6 
4  4 2   6 
5  5 1   6 
6  6 3   9 
7  7 3   10 
8  8 1   9 
9  9 1   10 
10 10 2   12 
관련 문제