2017-09-23 3 views
0

특정 박테리아를 나타내는 5 개의 문자 변수로 구성된 데이터 프레임이 있습니다. 나는 모든이 문자로 시작 각 변수의 관찰의 수천 K. 예를 들어데이터 프레임의 단일 열에서 고유 값 선택

x <- c(K0001,K0001,K0003,K0006) 
    y <- c(K0001,K0001,K0002,K0003) 
    z <- c(K0001,K0002,K0007,K0008) 
    r <- c(K0001,K0001,K0001,K0001) 
    o <- c(K0003,K0009,K0009,K0009) 

내가 나머지 네 개의 열 중 하나에 표시되지 않습니다 첫 번째 열에 고유의 관측을 식별해야합니다. 나는 ...

How to tell what is in one vector and not another?

를 내가 선택하여 개별 벡터를 만들 수있는 경우 일 것 같아 여기에 제안 된 접근 방식을 시도했지만 한 나는 ... 코드를 사용하여 분석을위한 벡터를 만들려고 할 때

x <- select(data$x) 

나는 오류를 UseMethod ("select_")에서

오류를 얻을 : 는 'select_'에 대한 적용 방법은 클래스의 객체 "문자

에 적용되지

as.factor 및 as.numeric을 사용하여 벡터를 변경하려고 시도했지만 위의 방법과 동일한 오류가 발생하고 as.numeric이 NS를 반환하기 때문에 이러한 접근 방식 중 어느 것도 작동하지 않습니다. 사전

에서

감사

+0

이것은 그것인가요? '데이터 $ x [! data $ x % in % unlist (data [-1])]' 참고 :'stringAsFactors = FALSE'라는 인수를 사용하여'data.frame'을 만들었습니다. –

답변

1

당신이 setdiff를 사용하는 것이 좋습니다 인용 참조. 이 솔루션을 적용하기 위해 수행해야하는 유일한 작업은 네 개의 열을 하나로 변환하여 집합으로 처리 할 수 ​​있도록하는 것입니다. 당신은 할 수있어 unlist

setdiff(data$x, unlist(data[,2:5])) 
"K0006" 
관련 문제