如何使用M个元素声明列表对象

时间:2013-10-12 23:01:49

标签: r

我想声明一个包含M 3乘3矩阵的列表。 如果我事先知道了数字M,那么我可以通过以下方式声明这样的列表:

elm <- matrix(NA,3,3)
## Say M = 7
myList <- list(elm,elm,elm,elm,elm,elm,elm) 

如果M很大,这种方法会变得很麻烦。更糟糕的是,如果我事先不知道M的值,这种方法就不起作用了。如果我想声明一个长度为M的向量,我可以做到 主叫:

myVec <- rep(NA,M)

即使我事先不知道M的价值。是否有类似的方式来声明大小为M的列表?

2 个答案:

答案 0 :(得分:39)

也许这个:

myls <- vector("list", length = S)

答案 1 :(得分:13)

尝试

mylist <- rep(list(elm),7)

,对于S = 3,给出

[[1]]
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
[3,]   NA   NA   NA

[[2]]
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
[3,]   NA   NA   NA

[[3]]
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
[3,]   NA   NA   NA

顺便说一句,identical(matrix(NA,3,3),matrix(,3,3))为真,因为默认情况下矩阵初始化为NA。请参阅?matrix