列表简介

列表允许用户在单个对象下存储多个元素(如矢量和矩阵)。你可以使用 list 函数创建列表:

l1 <- list(c(1, 2, 3), c("a", "b", "c"))
l1
## [[1]]
## [1] 1 2 3
## 
## [[2]]
## [1] "a" "b" "c"

请注意,构成上述列表的向量是不同的类。列表允许用户对不同类的元素进行分组。列表中的每个元素也可以具有名称。列表名称由 names 函数访问,并以相同的方式分配行和列名称以矩阵形式分配。

names(l1)
## NULL
names(l1) <- c("vector1", "vector2")
l1
## $vector1
## [1] 1 2 3
## 
## $vector2
## [1] "a" "b" "c"

在创建列表对象时声明列表名称通常更容易,更安全。

l2 <- list(vec = c(1, 3, 5, 7, 9),
       mat = matrix(data = c(1, 2, 3), nrow = 3))
l2
## $vec
## [1] 1 3 5 7 9
## 
## $mat
##      [,1]
## [1,]    1
## [2,]    2
## [3,]    3
names(l2)
## [1] "vec" "mat"

列表上方有两个元素,分别名为 vecmat,一个矢量和矩阵。