我面临的问题是我似乎无法获得正确形式的字典。我要附加到第一的嵌套列表元素,以便例如我可以有:在R中追加嵌套字典
mylist[[index]] <- list("TSI" <- list(), "type"=mytype)
我那么喜欢的元素添加到字典TSI让我有:
mylist[[index]][["TSI"]] <- list(mylist[[index]][["TSI"]], key=value)
但是当我继续这样做,即
mylist[[index]][["TSI"]] <- list(mylist[[index]][["TSI"]], '2'=200)
mylist[[index]][["TSI"]] <- list(mylist[[index]][["TSI"]], '3'=300)
我发现,当我这样做,我没有得到一个列表和字典/列表我试图建立只含一个值。
正如答案建议我已经试过这是一个循环的情况如下:
# type is some kind of string i.e. "3"
# myTSI is a value i.e. 400
# index is a value i.e. 1
mylist[[index]][["TSI"]] <- c(mylist[[index]][["TSI"]], type=myTSI)
指数没有这种情况发生变化,但类型不会,所以理想情况下应该建立一系列条目中mylist[[index]][["TSI"]]
其中mylist[[index]][["TSI"]][["6"]]
给出了该类型的myTSI。然而在退出循环,我打字的时候只是得到:
mylist[[index]][["TSI"]]
我得到以下
type
"648746"
但没有字典列表。这是奇怪的,因为如果我做的环以下几点:
mylist[[index]][["TSI"]] <- c(mylist[[index]][["TSI"]], "3"=100)
mylist[[index]][["TSI"]] <- c(mylist[[index]][["TSI"]], "4"=400)
打印mylist[[index]][["TSI"]]
,当我得到
3 4
100 400
不能工作了,为什么是这种情况。
的问题是'“TSI” < - 名单()':最好的办法是沿着以下线在你的第一个命令。这不会创建名为“TSI”的列表条目,而是将空列表绑定到符号“TSI”,然后该空列表将成为mylist [[index]]中的第一个(未命名!)条目。然后,当你尝试访问mylist [[index]] [[“TSI”]]'列表中的条目不存在时,返回一个'NULL'对象,然后向其追加一个名为''的列表条目2',值为200.如果你在第一行输入mylist [[index]] < - list(“TSI”= list(),“type”=“mytype”)',你的代码将按预期工作。 – fabians
@Navonod请不要问同样的问题两次 - 如果需要,你可以编辑你的问题。由于这个问题现在有一个答案,我已经投票关闭了以前的版本。 http://stackoverflow.com/q/22193805/134830 –
@RichieCotton,我应该试图先删除其他人。同意。谢谢。 – disruptive