2012-02-04 45 views
1

假設我有一個向量:x < - c(「m1」,「m2」,「m3」),並且每個元素m1,m2和m3是一個列表例如一個字符向量的元素是列表 - 如何組合它們

m1 = list(a=1:3, b=2:4, c=1:10) 
m2 = list(a=0:3, b=0:4, c=6:10) 
m3 = list(a=1:30, b=1:2, c=6:10) 

我希望能夠打造 「超級名單」 使用循環:

mylist <- list() 
for(i in x)mylist[[i]] <- ...??.... 

i="m1"然後mylist[["m1"]] <- m1

任何建議將升值。

羅伯特

+2

不確定爲什麼需要一個循環,如果你已經有三個命名列表,例如, mylist < - list(m1 = m1,m2 = m2,m3 = m3)'將完成這項工作。 (順便說一下,按照它的定義,'x'已經是一個列表。) – chl 2012-02-04 09:49:04

+0

也許你可以給你想要實現的更廣泛的背景。 – 2012-02-04 10:02:39

回答

3

它看起來像你想要做的是,給定對象名稱的向量,給定的對象組合成一個列表。

mylist <- lapply(x, get) 
names(mylist) <- x 
+0

非常感謝。我正在尋找這個有用的功能:get。它的作品你寫:lapply(x,get) – user1160354 2012-02-04 10:07:37

+2

小改進:'sapply(x,get,simplify = FALSE)'。這將創建列表的列表並在一個步驟中設置它們的名稱。 – 2012-02-04 14:55:52

相關問題