在我的数据集中LISTS
是列表的列表。假设它由 3 个列表组成,每个列表由 3 个矩阵组成。因此我总共有 9 个矩阵:
A <- list(matrix(rep(1.1,4),ncol=2),
matrix(rep(1.2,4),ncol=2),
matrix(rep(1.3,4),ncol=2))
B <- list(matrix(rep(2.1,4),ncol=2),
matrix(rep(2.2,4),ncol=2),
matrix(rep(2.3,4),ncol=2))
C <- list(matrix(rep(3.1,4),ncol=2),
matrix(rep(3.2,4),ncol=2),
matrix(rep(3.3,4),ncol=2))
LIST <- list(A,B,C)
我需要做的是创建一个由三个列表组成的新列表。第一个由低级矩阵组成A[[1]]
, B[[1]]
, C[[1]]
;第二个 A[[2]]
, B[[2]]
, C[[2]]
, 最后一个 A[[3]]
, B[[3]]
, C[[3]]
.
起初我尝试用例如 LIST[[1]][[1]]
来隔离单个矩阵等等。这行得通,但后来我没有找到一次选择 3 个矩阵的正确语法。我的意思(语法错误)是通过使用类似 LIST[(1:3)][[1]]
的东西来选择每个列表的第一个矩阵。 ,这显然是错误的……
换句话说,我想知道是否有一种直接的方法来选择嵌套列表的子集(类似于可以对矩阵或数据帧执行的操作)
非常感谢您的帮助!
最佳答案
也许你只是在lapply
中寻找[[
,但你的问题不是很清楚。
例如,要从每个子列表中获取第三个元素:
lapply(LIST, `[[`, 3)
# [[1]]
# [,1] [,2]
# [1,] 1.3 1.3
# [2,] 1.3 1.3
#
# [[2]]
# [,1] [,2]
# [1,] 2.3 2.3
# [2,] 2.3 2.3
#
# [[3]]
# [,1] [,2]
# [1,] 3.3 3.3
# [2,] 3.3 3.3
关于r - 从另一个列表(嵌套列表)的列表元素开始创建一个新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056534/