2.4.3 리스트의 서브세팅
리스트에서는 여러 요소를 한꺼번에 추출해야 할 때가 많다. 이렇게 추출한 여러 구성원은 원래 리스트의 하위 집합으로 된 또 다른 리스트를 구성한다.
벡터나 행렬처럼 리스트의 부분 집합을 추출할 때는 대괄호를 사용한다. 리스트의 일부 요소를 추출하여 새로운 리스트에 넣을 수 있다.
표기법 자체는 벡터에서 사용하는 방식과 동일하다. 문자형 벡터를 사용하여 이름으로 리스트를 추출하거나, 수치형 벡터를 사용하여 위치로 추출하거나, 논리형 벡터를 사용하여 어떤 조건을 기준으로 요소를 추출할 수 있다.
> l1["x"] $x [1] 1 > l1[c("x", "y")] $x [1] 1 $y [1] TRUE FALSE > l1[1] $x [1] 1 > l1[c(1, 2)] $x [1] 1 $y [1] TRUE FALSE > l1[c(TRUE, FALSE, TRUE)] $x [1] 1 $z [1] "a" "b" "c"
요약하면 이중 대괄호([[ ]])는 벡터나 리스트에서 원소 하나를 추출하는 것을 의미하고, 대괄호([ ])는 벡터나 리스트에서 부분 집합을 추출하는 것을 의미한다. 벡터를 서브세팅하면 벡터가 되는 것과 마찬가지로 리스트를 서브세팅하면 리스트가 생성된다.