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"

我是否错误地设置了列表?还是整个概念有缺陷?

谢谢

4

2 回答 2

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"

另请参阅这篇关于如何访问列表元素的帖子。

于 2013-07-18T11:33:02.877 回答
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"
于 2013-07-18T11:33:16.413 回答