더북(TheBook)

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"

요약하면 이중 대괄호([[ ]])는 벡터나 리스트에서 원소 하나를 추출하는 것을 의미하고, 대괄호([ ])는 벡터나 리스트에서 부분 집합을 추출하는 것을 의미한다. 벡터를 서브세팅하면 벡터가 되는 것과 마찬가지로 리스트를 서브세팅하면 리스트가 생성된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.