我想创建一个二维矩阵列表
> x
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
> y
[,1] [,2]
[1,] 301 306
[2,] 302 307
[3,] 303 308
[4,] 304 309
[5,] 305 310
> MATS<-c(x,y)
> MATS[1]
[1] 1
我希望能够将MATS [1]称为x ...
答案 0 :(得分:13)
尝试
x <- matrix(1:10, ncol=2)
y <- x+300
MATS <- list(x, y) # use 'list' instead of 'c' to create a list of matrices
MATS
[[1]]
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
[[2]]
[,1] [,2]
[1,] 301 306
[2,] 302 307
[3,] 303 308
[4,] 304 309
[5,] 305 310
您必须在MATS[[1]]
引用x
如果您想将新矩阵附加到退出列表,请尝试
z <- x+500
MATS[[3]] <- z # appeding a new matrix to the existing list
MATS
[[1]]
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
[[2]]
[,1] [,2]
[1,] 301 306
[2,] 302 307
[3,] 303 308
[4,] 304 309
[5,] 305 310
[[3]]
[,1] [,2]
[1,] 501 506
[2,] 502 507
[3,] 503 508
[4,] 504 509
[5,] 505 510
这种方法的一个缺点是你必须知道列表中你必须附加新矩阵的位置,如果你不知道它或者只是你不想要这种方法,那么这里有一个技巧:< / p>
unlist(list(MATS, list(z)), recursive=FALSE) # will give u the same list :D