列表包含多个“嵌套”项

时间:2013-07-18 11:12:53

标签: r

真正基本的问题,但我找不到答案 - 我可能误解了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"

我是否错误地设置了列表?或者整个概念是否存在缺陷?

由于

2 个答案:

答案 0 :(得分: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帖子,了解如何访问列表元素。

答案 1 :(得分: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"