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