2014-10-04 5 views
0

이 같은 R의 dataframe, 내가보다가 열 1과 2에 해당 값을 얻으려면하나 개 이상의 값이 dataframe에 존재하는 컬럼의 값을 얻기

1 2 abc bh abd NA NA 
2 3 abc NA NA NA NA 
3 4 NA NA ad yu ae 
................... 

이있는 경우 나머지 열의 값 하나. 예를 들어 1 2에는 3 개의 값이 있고 3 4에는 3 개의 값이 있고 2 3에는 하나의 값만 있고 나머지는 NA입니다. 그래서 1 23 4이 필요합니다. R에서 어떻게 할 수 있습니까? 감사합니다.

+0

찬 - 이것은 당신이 물어 보았던 질문의 약간 다른 버전처럼 보입니다 (http://stackoverflow.com/q/26197648/3897439). 두 가지 질문은 약간의 검색으로 해결되었을 수 있습니다. 예를 들어 [this] (http://stackoverflow.com/q/4862178/3897439) 질문. –

답변

1
x <- read.table(text="1 2 abc bh abd NA NA 
2 3 abc NA NA NA NA 
3 4 NA NA ad yu ae") 

x[rowSums(!is.na(x[, -1:-2])) > 1, 1:2] 
# V1 V2 
#1 1 2 
#3 3 4 

!is.na(x[, -1:-2])는 TRUE/FALSE 값의 행렬을 반환한다. rowSums은 TRUE 값을 1로, FALSE 값을 0으로 변환하고 행별로 합계합니다. 부분 집합은 1보다 큰 행만 포함하고 열은 1:2을 반환합니다.

관련 문제