或者换一种说法:如何[[
在嵌套列表中使用运算符?
当我询问如何确定列表的深度级别时,您可以将此视为此问题的后续问题。我从@Spacedman 和@flodel 那里得到了一些不错的答案,他们都建议使用递归函数。两种解决方案都非常相似并且对我有用。
但是,我还没有弄清楚如何处理从这些函数中获得的信息。假设我有一个嵌套在 level 的列表i
,我想返回一个包含所有i-th
level 元素的列表,如下所示:
myList$firstLevel$secondLevel$thirdLevel$fourthLevel
# fourthLevel contains 5 data.frames and thirdLevel has
# three elements
如何从 中取回所有 15 个 data.frames mylist
?我正在尝试使用例如
lapply(mylist,"[[",2)
但显然我只是在第一级得到所有列表元素的第二个元素。
编辑:我在extract
各自的帮助下找到了以下内容,?"[["
但到目前为止还不能真正理解它:
"[[ 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)]]
}