许多场合下,我们需要从列表中提取多个元素。由这些元素组成的列表构成了原列表

的一个子集。

构建一个列表子集,我们可以用单层方括号,就像提取向量和矩阵中元素一样。我们

可以取出列表中的一些元素,然后放到一个新的列表中。

这里方括号的用法与其在向量中的用法非常相似。我们可以用字符向量表示成分名称,

用数值向量表示成分位置,或用逻辑向量指定选择标准,来取出列表元素

① 。

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"

总而言之,我们可以说,[[用来提取向量或列表中的一个元素,而[用来提取一个向

量或列表的子集。向量的子集是一个向量。同样的,列表的子集也是一个列表。