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

Fai*_*Ice 22 r

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

elm <- matrix(NA,3,3)
## Say M = 7
myList <- list(elm,elm,elm,elm,elm,elm,elm) 
Run Code Online (Sandbox Code Playgroud)

如果M很大,则该方法变得麻烦.更糟糕的是,如果我事先不知道M的值,这种方法就不起作用了.如果我想声明一个长度为M的向量,我可以通过调用:

myVec <- rep(NA,M)
Run Code Online (Sandbox Code Playgroud)

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

谢谢

ale*_*laz 44

也许这个:

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


Fra*_*ank 15

尝试

mylist <- rep(list(elm),7)
Run Code Online (Sandbox Code Playgroud)

对于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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,identical(matrix(NA,3,3),matrix(,3,3))是的,因为矩阵NA默认初始化为.见?matrix.