Page 20 -
P. 20
> v1
[1] 3 0 2 3
논리형 벡터를 활용할 수 있다는 사실은 결국 논리형 연산을 사용할 수 있다는 것을 의미한다. 예
를 들어 다음과 같이 v1에서 2보다 작거나 같은 모든 원소를 선택할 수 있다.
> v1[v1 <= 2]
[1] 0 2
2
좀 더 복잡한 것도 가능하다. 다음은 v1에서 x - x + 1 ≥ 0을 만족하는 모든 원소를 출력한다.
> v1[v1 ^ 2 - v1 + 1 >= 0]
[1] 3 0 2 3
x <= 2를 만족하는 모든 원소를 0으로 대체하려면 다음 코드를 실행하자.
> v1[v1 <= 2] <- 0
그 결과 v1은 다음과 같다.
> v1
[1] 3 0 0 3
존재하지 않는 요소에 값을 할당하면, 자동으로 해당 원소가 존재하도록 벡터 길이를 늘리고 나머
지 원소는 결측 값(NA)으로 채운다.
> v1[10] <- 8
> v1
[1] 3 0 0 3 NA NA NA NA NA 8
2.1.5 이름이 정해진 벡터
이름이 정해진 벡터란 수치형 벡터나 논리형 벡터 같은 종류의 새 벡터를 지칭하는 것이 아니다.
각 원소에 해당하는 이름이 있는 벡터를 의미한다. 벡터를 생성할 때 이름을 붙일 수 있다.
> x <- c(a = 1, b = 2, c = 3)
> x
a b c
1 2 3
54
r교과서_07.indd 54 2020-04-09 오후 4:21:24