从另一个列表的列表元素开始创建新列表(嵌套列表)

3

在我的数据集中,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]]之类的东西选择每个列表的第一个矩阵,这显然是错误的...
换句话说,我想知道是否有一种直接选择嵌套列表子集的方法(类似于可以对矩阵或数据框执行的操作)。
非常感谢您的任何帮助!

你会怎么做? - joran
我并没有不礼貌。你在提问时应该包括你已经尝试过的内容,这样我们就不会建议你已经尝试过的东西了。 - joran
把这个放在你的问题里。每个人都“说”他们已经尝试了几个小时/几天的东西,但在互联网上任何人都可以这么说。如果你的问题只是“我需要做X,告诉我怎么做”,那就显得有点“粗鲁”。 - joran
好的,谢谢你所有的建议。 - Stefano Lombardi
你有我的问题的答案吗? - Stefano Lombardi
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接