2013-09-06 5 views
0

큰 데이터 프레임의 행과 열을 인쇄하여 다른 데이터 프레임의 지정된 행이나 열에도 값을 표시하려고합니다. 나는 성공없이 가치 목록과 우연의 일치를 기반으로 for 루프를 시도하고있다. 단순화 된 예 :다른 데이터 프레임의 값을 기반으로 데이터 프레임의 행과 열을 삭제합니다.

데이터 프레임을 감안

r1<-c(1,2,3,4,5) 
r2<-c(6,7,8,9,10) 
r3<-c(11,12,13,14,15) 
r4<-c(16,17,18,19,20) 
r5<-c(21,22,23,24,25) 
sample<-as.data.frame(rbind(r1,r2,r3,r4,r5)) 

     V1 V2 V3 V4 V5 
    r1 1 2 3 4 5 
    r2 6 7 8 9 10 
    r3 11 12 13 14 15 
    r4 16 17 18 19 20 
    r5 21 22 23 24 25 

I는 제 1 열 (R1)의 값이

info.column<-as.data.frame(c(6,1,4,21,15,11,9,12,13,14,15)) 

에 나타나지 않은에서 "샘플"의 항목을 소거하고 싶은 제 1 열 (V1)의 값이 나타나지 않는 행을 소거한다.

exp 결과는

이 될 것입니다.

+2

이것은 매우 기본적인 질문입니다. 자신이 시도한 것을 나에게 알리고 적절한 답을 찾지 못했다고 생각할 수 있습니까? – Justin

+0

너무 근본적이라면 유감입니다. 비슷한 문제로 안내해 주시겠습니까? 나는 꽤 오랜 시간 동안, 특히 for 루프를 적용하기 위해 각각 info.column과 info.row의 목록을 만드는 방법에 대해 수색했다. 그러나 그것이 작동하지 않기 전에 말했다. 어떤 도움도 대단히 환영합니다. – user12975

+0

'R'에있는 데이터 세트를 부분 집합하는 것은 사용 가능한 모든 인트로 가이드에서 철저히 다루어집니다. 나중에 SO에 게시하기 전에 약간의 조사를하십시오. 'sample [% info.row [, 1], sample [1,] % in % info.column [, 1]]' – Justin

답변

3

sample[sample$V1 %in% info.row[, 1], sample[1,] %in% info.column[, 1]]

은을 분해 할 수 있습니다. 각 부분은 반환 무엇을 봐 :

> sample$V1 %in% info.row[, 1] 
[1] TRUE FALSE TRUE FALSE TRUE 

이것은 data.frame info.row의 첫 번째 열에서 발견되는 어떤 V1 이름 sample의 열의 행 말한다.

> sample[1,] %in% info.column[, 1] 
[1] TRUE FALSE FALSE TRUE FALSE 

내가 당신 data.frame info.column의 첫 번째 열이에서 발견되는 sample의 열을 원하는 말한다 : 또는 즉, I 행 1, 3과 마찬가지로 5

에서 일치하는 값을 찾을 수 첫번째 줄. 다시 말해, 나는 값 열 1 매칭 및

4. 그래서 결과는 당신이 subset으로 그것을 읽을 수 3 × 2와 동등한 [를 사용하는 경우

sample[c(1, 3, 5), c(1, 4)]하는 것를 찾을 수 있습니다. 따라서 두 표현식이있는 [행, 열]을 반환하십시오. TRUE

+0

고마워, 분명히 for 루프 기반을 찾고있다. 가치 목록에서, 그것보다 훨씬 간단했습니다. – user12975

관련 문제