Page 19 -
P. 19
벡터의 원래 크기를 넘어가는 위치를 사용하여 부분 집합을 구하면 어떻게 될까? 다음 코드는 v1
의 세 번째 원소에서 존재하지 않는 여섯 번째까지 부분 집합을 구하는 예제다.
> v1[3:6]
[1] 3 4 NA NA 2
존재하지 않는 위치에 해당하는 원소는 NA, 즉 결측 값으로 표기되는 것을 볼 수 있다. 일반적으로
실제 데이터에는 결측 값이 있다. 일관성을 유지하려고 NA가 포함된 모든 산술 연산의 결과 역시 기본 객체 알아보기
도 NA가 된다. 그렇다고 해도 결측 값이 없다고 가정하는 것은 안전하지 않을 수 있으므로 데이
터를 다룰 때는 이 부분을 염두에 두어야 한다.
벡터의 부분 집합을 구하는 또 다른 방법은 논리형 벡터를 활용하는 것이다. 어떤 요소를 선택할
지 결정하는 데 길이가 같은 논리형 벡터를 사용할 수 있다.
> v1[c(TRUE, FALSE, TRUE, FALSE)]
[1] 1 3
부분 집합을 구할 수도 있지만, 다음과 같이 특정 값을 덮어 쓸 수도 있다.
> v1[2] <- 0
이때 v1은 다음과 같다.
> v1
[1] 1 0 3 4
서로 다른 위치에 각각 다른 값도 넣을 수 있다.
> v1[2:4] <- c(0, 1, 3)
v1은 다음과 같다.
> v1
[1] 1 0 1 3
논리형 벡터를 활용할 때도 마찬가지로 값을 할당하는 데 사용할 수 있다.
> v1[c(TRUE, FALSE, TRUE, FALSE)] <- c(3, 2)
예상했듯이 v1은 다음과 같다.
53
r교과서_07.indd 53 2020-04-09 오후 4:21:24