2014-10-01 2 views
0

의 내가 다음과 같습니다 데이터 집합을 가지고 있다고 가정 해 봅시다 :여러 값을 기반으로 R에서 행을 어떻게 제외합니까?

> data 
    iso3 Vaccine Coverage 
1 ARG DPT3  95 
2 ARG  MCV  94 
3 ARG Pol3  91 
4 KAZ DPT3  99 
5 KAZ  MCV  98 
6 KAZ Pol3  99 
7 COD DPT3  67 
8 COD  MCV  62 
9 COD Pol3  66 

나는 동시에 충족되는 여러 조건에 따라 일부 레코드를 필터링 할; 아르헨티나 (ARG)의 데이터를 93 % 이상 보급하고 싶습니다. 그 결과, 따라서 1 행과 2 행 제외해야합니다 :

iso3 Vaccine Coverage 
3 ARG Pol3  91 
4 KAZ DPT3  99 
5 KAZ  MCV  98 
6 KAZ Pol3  99 
7 COD DPT3  67 
8 COD  MCV  62 
9 COD Pol3  66 

내가 subset()를 사용하여 시도를하지만 너무 많은 제외 :

> subset(data, iso3!="ARG" & Coverage>93) 
    iso3 Vaccine Coverage 
4 KAZ DPT3  99 
5 KAZ  MCV  98 
6 KAZ Pol3  99 

문제는 & 연산자처럼 작동하지 않는 것 같다 부울 AND, 두 조건의 교차점을 반환합니다. 대신 부울 OR과 같은 기능을하여 결합을 반환합니다.

내 질문은 내가 부울 AND를 강요하기 위해 여기서 무엇을 사용합니까?

+0

입니다.'with'를 사용하면 덜 혼란 스러울 수 있습니다. '(df,! (iso3 == "ARG"& Coverage> 93))와 함께' –

답변

8

!=은 "같지 않음"을 의미하는 연산자입니다.

!

iso3!="ARG" & Coverage>93 

은 AND (범위> 93)

(같지에 "ARG"iso3 )

이다 (NOT)

내 조건 논리 부정을 나타낸다 원하는 경우

NOT ((ISO 같음 "ARG") AND (보도> 93))

당신은 적절한 조건을 만들 필요가

, 논리의 전체 범위에 대한 예를 들어

예를 들어

!(iso == 'ARG' & Coverage > 93) 

베이스 R의 연산자는

help('Logic', package='base') 
관련 문제