使用名称引用的一些但不是所有列表元素返回新列表的正确方法是什么?例如:
$listA[1] 1 2 3 4 5
listA
$数组listB[1]“a”“b”“c”“d”“e”
$ listC[1] 25 26 27 28 29 ……
最简单的方法是使用 [ 运营商喜欢:
[
mylist[c("listA", "listC")]
的 输出: 强>
$`listA` [1] 1 2 3 4 5 6 7 8 9 10 $listC [1] 25 26 27 28 29 30 31 32
请注意,使用时从列表中选择一个元素 [ ,输出可能不是我们所期望的:
mylist["listA"]
$`listA` [1] 1 2 3 4 5 6 7 8 9 10 > class(mylist["listA"]) [1] "list"
在这里,我们看到选择元素 "listA" 运用 [ 才不是 返回元素本身,但返回一个列表 包含 该 "listA" 元件。如果我们想按名称对元素本身进行子集化,我们应该使用 [[ 运营商:
"listA"
[[
mylist[["listA"]]
[1] 1 2 3 4 5 6 7 8 9 10 > class(mylist[["listA"]]) [1] "integer"
另一个区别 [ 和 [[ 就是它 [[ 只能用于选择单个元素。例如,以下内容不起作用:
mylist[[c("listA", "listC")]]
mylist中的错误[[c(“listA”,“listC”)]]:下标超出范围