2013-09-27 147 views
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]]之类的东西来选择第一个矩阵,这显然是错误的...

换句话说,我想知道是否有直接的方法来选择子集的嵌套列表(类似于什么是可能的矩阵或dataframes做)

非常感谢您的帮助!

+0

_you_将如何进行? – joran

+0

我根本不是无礼的。你应该包括在你的问题中的一件事是你到目前为止的尝试。那样,我们不建议你已经尝试过的东西。 – joran

+0

只要把它放在你的问题。每个人都表示他们一直在尝试一些小时/天的工作,但在互联网上任何人都可以这么说。如果你的问题仅仅是“我需要做X,告诉我怎么做”,那就是_rude_。 – joran

回答

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 
+0

非常感谢你! – Stezzo

+0

@Stezzo,不是问题... – A5C1D2H2I1M1N2O1R2T1

相关问题