9. R 문법 2 - 문자형, boolean형 과 논리연산자
1) 개요
R의 문법 중 기초인 문자형과 진리값을 표현하는 boolean형과 논리연산자에 대해 공부하겠습니다.
2) 문자형
R에서는 다른 프로그래밍 언어와 다르게 문자형과 문자열을 구분하지 않습니다.
JAVA의 String 처럼 전부 문자열로 인식을 합니다.
사용은 문자열을 작은 따옴표('
)나 큰 따옴표("
)로 감싸서 사용합니다.
예)
print('a')
print("a")
3) boolean형 과 논리연산자
boolean형은 진리값이라고 하며 논리연산의 결과로 사용됩니다.
3-1. boolean형
우선 컴퓨터는 0과 1의 비트만을 이용하여 계산을 하는데 0은 거짓이라고 인식하면 0이외의 값은 참이라고 인식을 한다.
R에서는 참과 거짓을 TRUE, FLASE로 표기하는데 반드시 대문자로 사용해야 한다.
R은 대소문자를 구분하기 때문에 TRUE와 true는 다른 것으로 인식한다.
3-2. 논리연산자
참과 거짓의 값을 이용하여 연산하는 연산자이다.
논리연산자 |
기호 |
설명 |
NOT |
! |
참은 거짓, 거짓은 참으로 반전 시켜줌 |
AND |
& |
양쪽 모두 참이여야 참 |
AND |
&& |
“ |
OR |
│ |
양쪽 중 하나만 참이여도 참 |
OR |
││ |
“ |
XOR |
xor(A,B) |
함수로 제공 A나 B 서로 다를 때만 참 |
- NOT(
!
) 연산자
A의 진리값을 반전시킨다.!A
예)
> !0
[1] TRUE
0은 FALSE이지만 NOT 연산을 통해 반전 시켜줌으로써 TRUE가 되었다.예)
> !4
[1] FALSE
4는 0 이외의 숫자이므로 TRUE이지만 NOT 연산을 통해 반전 시켜줌으로써 FALSE가 되었다. AND(&
,&&
) 연산자
A와 B 모두 참일 경우에만 참을 출력한다.
A & B
A && B
예)
> 5 & 5
[1] TRUE
A와 B 모두 참이므로 참
예)
> 5 & 0
[1] FALSE
B가 거짓이므로 거짓
&
연산자와 &&
연산자의 차이
&
연산자는 각 요소별로 연산자를 수행하지만 &&
연산자는 처음 요소만 연산을 수행한다.
&
연산 할 때는 A와 B 요소의 갯수가 같아야만 하지만, &&
연산은 갯수가 달라도 처음 요소만 연산하기 때문에 관계 없다. 예)
> c(TRUE, TRUE, FALSE) & c(FALSE, TRUE, FALSE)
[1] FALSE TRUE FALSE
1번째 요소인 TRUE와 TRUE를 비교, 2번째 요소인 TRUE와 TRUE를 비교, 3번째 요소인 FALSE와 FALSE를 비교한 결과 값이 출력 된다.예)
> c(TRUE, TRUE, FALSE) && c(FALSE, TRUE)
[1] FALSE
1번째 요소인 TRUE와 TRUE만 비교한 결과가 출력된다.
OR(|
,||
) 연산자
A나 B중 하나가 참이면 참을 출력하며 A와 B 모두 거짓일 때만 거짓을 출력한다.
A | B
A || B
예)
> 5 | 0
[1] TRUE
A가 참이므로 참
예)
> 0 & 0
[1] FALSE
A와 B가 모두 거짓이므로 거짓
|
연산자와 ||
연산자의 차이
위에서 설명한 AND(&
,&&
)연산자에 설명한 내용과 동일하다.예)
> c(TRUE, TRUE, FALSE) | c(FALSE, TRUE, FALSE)
[1] TRUE TRUE FALSE
예)
> c(TRUE, TRUE, FALSE) || c(FALSE, TRUE)
[1] TRUE
- XOR 함수
XOR은 A와 B가 서로 다를 때만 참이다.
XOR의 경우 기본 논리 연산자가 아닌 조합된 논리 연사자 이므로 함수로써 제공이 된다. 다른 언어에서는 연산자로 제공하는 경우가 있어 여기에서 설명을 했다.xor(A,B)
예)
> xor(5,0)
[1] TRUE
예)
> xor(5,5)
[1] FALSE