Page 22 -
P. 22

> x <- c(a = 1, b = 2, c = 3)
                 > x["d"]
                 <NA>
                   NA

               존재하지 않는 원소에 접근하려고 했기 때문에 오류가 발생했다고 생각하기 쉽다. 하지만 결과는
               오류가 아닌 이름과 값이 모두 결측 값인 벡터인 것을 볼 수 있다.

                 > names(x["d"])
                 [1] NA


               이름이 있을 때와 없을 때가 섞여 있더라도 선택하는 데 사용된 문자형 벡터 길이와 동일한 길이
               로 결과 벡터를 얻는다.

                 > x[c("a", "d")]
                 a <NA>
                 1  NA




               2.1.6 원소 추출하기


               대괄호([ ])를 사용하여 벡터의 부분 집합을 구한다면, 이중 대괄호([[ ]])로는 벡터의 원소를 구

               할 수 있다. 벡터를 사탕이 들어 있는 상자 10개라고 하자. [ ]는 사탕 상자 3개를 선택할 수 있다
               면, [[ ]]는 상자를 열어 그 안에 있는 사탕을 얻을 수 있다.

               물론 단순 벡터는 [ ]와 [[ ]] 모두 한 원소를 가지며, 그 결과는 같다. 하지만 어떤 경우에는 결
               과가 다르다. 예를 들어 이름이 정해진 벡터를 서브세팅할 때는 결과가 다르다.

                 > x <- c(a = 1, b = 2, c = 3)
                 > x["a"]
                 a
                 1
                 > x[["a"]]
                 [1] 1


               다시 사탕 상자 비유로 돌아가 설명해 보자. x["a"] 인수는 사탕 상자 a를 돌려주는 반면,
               x[["a"]]는 사탕 상자 a에서 사탕을 꺼내 준다고 할 수 있다.

               [[ ]]는 한 요소만 추출하므로 당연히 요소가 2개 이상 있는 벡터에는 사용할 수 없다.



         56





     r교과서_07.indd   56                                                                       2020-04-09   오후 4:21:24
   17   18   19   20   21   22   23   24   25   26   27