Page 16 -
P. 16
앞 코드는 c(1 > 2, 2 > 1)라는 의미다. 길이가 서로 다른 벡터를 비교할 경우를 알아보자.
> c(2, 3) > c(1, 2, -1, 3)
[1] TRUE TRUE TRUE FALSE
살짝 복잡하게 보일 수 있다. 이는 길이가 짧은 벡터를 반복해서 적용한다고 생각하면 된다. 결과
적으로 c(2 > 1, 3 > 2, 2 > -1, 3 > 3)를 의미한다. 자세히 보면, 길이가 긴 벡터에 있는 모든 요소
에서 비교가 끝날 때까지는 짧은 벡터 안의 요소들을 계속해서 재활용하는 것을 알 수 있다.
R에는 다음과 같은 이진 논리 연산자가 있다. ==는 동일함, >는 큼, >=는 크거나 같음, <는 작음,
<=는 작거나 같음을 의미한다. 이외에도 R에는 %in% 같은 논리 연산자가 있다. 이는 왼쪽 벡터에
있는 원소가 오른쪽 벡터 안에 있는지 판단한다.
> 1 %in% c(1, 2, 3)
[1] TRUE
> c(1, 4) %in% c(1, 2, 3)
[1] TRUE FALSE
보다시피 수치를 비교하는 데 사용하는 연산자와 달리 %in% 연산자는 길이가 다른 벡터 간에도 원
소를 재활용하지 않는다. 앞 예제에서는 대신에 왼쪽 벡터의 원소들을 차례로 반복 적용하여 실제
로는 c(1 %in% c(1, 2, 3), 4 %in% c(1, 2, 3))처럼 동작한다.
2.1.3 문자형 벡터
문자형 벡터는 말 그대로 문자열로 된 집합이다. 여기서 문자열은 개별적인 문자 또는 기호가 아
니라 this is a string 같은 문자의 집합을 의미한다. 문자형 벡터를 만드는 데 큰따옴표와 작은따
옴표를 모두 사용할 수 있다.
> "hello, world!"
[1] "hello, world!"
> 'hello, world!'
[1] "hello, world!"
c() 함수로 다중 요소 문자형 벡터를 만들 수 있다.
> c("Hello", "World")
[1] "Hello" "World"
50
r교과서_07.indd 50 2020-04-09 오후 4:21:24