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
   15   16   17   18   19   20   21   22   23   24   25