2013-09-27 189 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

相關問題