본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 10. 논리연산자 (and, or, not)

by 만다린망고 2020. 3. 14.
반응형
도구 R로 푸는 통계

10. 논리연산자 (and, or, not)



논리연산자에는 세 가지가 있습니다. and, or, not 입니다. 논리 연산의 결과는 TRUE 와 FALSE 라는 진리값입니다. 


1. and 연산자


and연산자는 두 피연산자가 모두 TRUE일 때만 TRUE 값을 반환하는 연산자입니다. 


and 연산자는 &와 && 두 가지를 사용합니다. 먼저 and 연산자의 사용 예를 보고 나서 두 기호의 차이를 설명드리겠습니다. 


진리값 사이의 and 연산입니다. 


> TRUE&TRUE

[1] TRUE


> TRUE&FALSE

[1] FALSE


> FALSE&FALSE

[1] FALSE


숫자의 and연산의 경우 0만 FALSE로 나머지는 TRUE로 인식합니다. 


> 1&0

[1] FALSE


> 2&0

[1] FALSE


> 2&4

[1] TRUE


벡터끼리의 and연산도 가능합니다. &와 &&을 사용해서 계산해보겠습니다. 


> a=c(1,0,2,3)

> b=c(0,1,1,4)

> a&b

[1] FALSE FALSE  TRUE  TRUE


> a=c(1,0,2,3)

> b=c(0,1,1,4)

> a&&b

[1] FALSE


두 기호의 차이를 아시겠나요? &는 원소단위의 개별연산 결과를 출력하구요. &&는 첫번째 원소간의 연산결과를 출력해줍니다. 


비교연산자와 함께 사용할 수도 있습니다. '교집합'의 의미를 갖습니다. 


> a=c(1,2,3,4,5)

> 2<a & a<4

[1] FALSE FALSE  TRUE FALSE FALSE


정의한 연산이 2보다 크고 4보다 작은 원소를 의미하니까요. 세번째 원소인 3만 TRUE 값을 갖습니다. 



2. or 연산자


or연산자는 두 피연산자 중 하나만 TRUE여도 TRUE 값을 반환하는 연산자입니다. 


or 연산자는 | 와 || 두 가지를 사용합니다. 이 기호는 shift+\ 로 생성합니다. 


진리값 사이의 or 연산입니다. 


> TRUE | TRUE

[1] TRUE


> TRUE | FALSE

[1] TRUE


> FALSE | FALSE

[1] FALSE


숫자의 or연산의 경우 0만 FALSE로 나머지는 TRUE로 인식합니다. 


> 1 | 0

[1] TRUE


> 0 | 0

[1] FALSE


> -1 | -4

[1] TRUE


벡터끼리의 or연산도 가능합니다. |와 || 을 사용해서 계산해보겠습니다. 


> a=c(0,0,2,3)

> b=c(0,1,1,4)

> a|b

[1] FALSE  TRUE  TRUE  TRUE


> a=c(0,0,2,3)

> b=c(0,1,1,4)

> a||b

[1] FALSE


 | 는 원소단위의 개별연산 결과를 출력하구요. || 는 첫번째 원소간의 연산결과를 출력해줍니다. 


비교연산자와 함께 사용할 수도 있습니다. '합집합'의 의미를 갖습니다. 


> a=c(1,2,3,4,5)

> 2<a | a<4

[1] TRUE TRUE TRUE TRUE TRUE


정의한 연산이 2보다 크거나 4보다 작은 원소를 의미하니까요. 전체 원소가 TRUE 값을 갖습니다. 


3. not 연산자


not 연산자는 !을 사용합니다. not 연산자는 반대 논리값을 반환합니다.   


진리값 사이의 not연산입니다. 


> !TRUE

[1] FALSE


> !FALSE

[1] TRUE



숫자의 not연산의 경우 0만 TRUE로 나머지는 FALSE로 인식합니다. 


> !1

[1] FALSE


> !8

[1] FALSE


> !0

[1] TRUE



벡터의 not연산도 가능합니다.


> a=c(1,2,0,0,-1)

> !a

[1] FALSE FALSE  TRUE  TRUE FALSE



비교연산자와 함께 사용할 수도 있습니다. '여집합'의 의미를 갖습니다. 


> a=c(1,2,3,4,5)

> !(a<2)

[1] FALSE  TRUE  TRUE  TRUE  TRUE


정의한 연산이 2보다 작지 않은 원소를 의미하니까요. 2와 같거나 큰 원소에서 TRUE를 반환합니다.  



영상이 더 편하신 분




반응형

댓글