2012-05-11 2 views
4

모든 논리 제외를 별도로 나열하는 대신 단일 벡터에서 모든 상태 이름을 결합하는 방법은 무엇입니까? CRAN 웹 사이트에서 % notin % 함수를 발견했지만 R은 합법적 인 함수로 인식하지 못합니다.여러 제외를 사용하여 데이터 집합의 하위 집합을 만드는 방법은 무엇입니까?

indata <- indata[which(indata$STATE != "GU" & indata$STATE != "WY" & 
         indata$STATE != "KS" & indata$STATE != "ME" & 
         indata$STATE != "MT" & indata$STATE != "ND" &), ] 

감사합니다.

답변

5
indata[!indata$STATE %in% c("GU", "WY", "KS", "ME", "MT", "ND"), ] 

편집 : @CarlWitthoft, 믿거 나 말거나, 나는 실제로 내가 '때까지 사용할 생각하지의

`%notin%` <- function (x, table) x[!x %in% table] 

그러나 잠시 동안 개인 패키지에 다음과 같은 했어 이미 긴 형식으로 입력했습니다. 또한 코드를 사용하면 코드를 배포하기가 어려워집니다. 나는 다시 시도 %notin%

+0

또한'필요하지 않습니다 GSEE의 대답을주의 깊게 살펴 which' 인덱싱 사용 등 숫자 입력보다는 TRUE/FALSE (입력이 빠르며 빠름) –

+0

숙제의 경우 해당 작업을 수행하는 % notin % 연산자를 정의하십시오 .-) –

3

의 후반 인

operators:::`%!in%` 

인식하지 않았다 :

library(operators) 

x%!in%y 

#works fine 
관련 문제