【发布时间】:2020-11-24 05:18:14
【问题描述】:
这篇文章和我之前的post类似。
假设我是否有以下代码:
my_list <- list(c(1,2),3,4)
x = list()
for(i in 1:4) {
x[[i]] <- matrix(1:9*i, nrow = 3)
}
my_list 在哪里:
[[1]]
[1] 1 2
[[2]]
[1] 3
[[3]]
[1] 4
我应该写什么才能得到与下面相同的结果?
[[1]]
[[1]][[1]]
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[[1]][[2]]
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
[[2]]
[,1] [,2] [,3]
[1,] 3 12 21
[2,] 6 15 24
[3,] 9 18 27
[[3]]
[,1] [,2] [,3]
[1,] 4 16 28
[2,] 8 20 32
[3,] 12 24 36
我已经尝试使用下面的代码,但它不适用于这种情况:
mat <- ls(pattern = "x[[\\d+$]]", envir = .GlobalEnv)
mat_list <- lapply(my_list, function(i) mget(mat[i], envir = .GlobalEnv))
和
mat_list <- lapply(my_list, function(i) x[[i]])
【问题讨论】:
-
你需要
lapply(my_list, function(i) x[i])吗? -
啊,我可能把它复杂化了,这行得通!谢谢@Ronak