或换个说法:我如何在嵌套列表中使用[[
运算符?如何选择特定嵌套级别的列表中的所有元素?
当我问及如何确定列表的深度级别时,可以将此视为对one的后续问题。我从@Spacedman和@ flodel得到了一些体面的答案,他们都提出了递归函数。这两个解决方案非常相似,并为我工作。
但是我还没有想出如何处理从这些函数中获得的信息。比方说,我有嵌套在i
级列表,我想回到一个包含所有i-th
级别的元素,像这样的列表:
myList$firstLevel$secondLevel$thirdLevel$fourthLevel
# fourthLevel contains 5 data.frames and thirdLevel has
# three elements
我怎样才能找回从mylist
所有15个data.frames? 我正在尝试使用例如
lapply(mylist,"[[",2)
但很明显,我只是得到第一级所有列表元素的第二个元素。
编辑:我发现在extract
respectivel ?"[["
的帮助下,但并不能真正总结我的头周围至今: "[[ can be applied recursively to lists, so that if the single index i is a vector of length p, alist[[i]] is equivalent to alist[[i1]]...[[ip]] providing all but the final indexing results in a list."
编辑: 不想落得像嵌套循环这。
o <- list()
i=1
for (i in 1:2){
o[[i]] <- mylist[[c(i,1,1,1)]]
}
这意味着'mylist [[c(1,2)]]'会为你提供'mylist'第一个元素的第二个元素。 –
谢谢罗曼,实际上这有助于我可以尝试确定非常高的最大值,然后通过它们循环。所以下一步将是:如何递归地查找我的列表的长度? –
您是要求每个级别的长度,还是仅仅是最低级别列表元素的长度? –