2013-07-18 27 views
0

很基本的問題,但我無法找到答案 - 我可能誤解了在R裏面,列表列出與多個「嵌套」項目

你能在列表中有多個舉辦「套」的項目? 這是罰款:

cats<-c("red", "blue", "yellow") 
l1<-list() 

for(i in cats){ 
    l1[i][1]<-"hello" 
};l1 

這不是:

for(i in cats){ 
    l1[i][2]<-"goodbye" 
};l1 

輸出我心目中就意味着

l1$red[1]"hello"l1$red[2]"goodbye"

我是否設置列表不正確?或者是整個概念有缺陷?

感謝

回答

0

您有[[而不是[訪問列表元素:

for(i in cats){ 
    l1[[i]][1]<-"hello" 
};l1 

for(i in cats){ 
    l1[[i]][2]<-"goodbye" 
};l1 


> l1$red[1]                                                                  
[1] "hello"                                                                  
> l1$red[2]                                                                  
[1] "goodbye" 

又見this杆,它是關於如何訪問列表元素。

+0

這就是它 - 謝謝你。它實際上證明我想要l1 [[i]] [[1]] < - 「hello」和l1 [[i]] [[2]] < - 「再見」。這個答案讓我在那裏。 –

0

數據:

cats<-c("red", "blue", "yellow") 
words <- c("hello", "goodbye") 

你可以用這個命令創建列表:

l1 <- setNames(rep(list(words), length(cats)), cats) 


> l1 
$red 
[1] "hello" "goodbye" 

$blue 
[1] "hello" "goodbye" 

$yellow 
[1] "hello" "goodbye" 

> l1$red[1] 
[1] "hello" 

> l1$red[2] 
[1] "goodbye" 
+0

謝謝 - 以前沒有見過這種方法 –