显然有很多关于这个主题的问题,但我看不到提出的任何通用解决方案:我有一个深度递归列表,并希望将其展平为包含所有非列表项的单个列表。
例如,采用这个嵌套列表:
d = list(
list(
list(
iris[sample(1:150,3),],
iris[sample(1:150,3),]
),
list(
list(
iris[sample(1:150,3),],
list(
iris[sample(1:150,3),],
iris[sample(1:150,3),]
)
)
)
)
)
并将其变成这样:
list(iris[sample(1:150,3),],
iris[sample(1:150,3),],
iris[sample(1:150,3),],
iris[sample(1:150,3),],
iris[sample(1:150,3),])
我根据其他解决方案尝试了以下一些方法:
purrr::flatten(d)
plyr::llply(d, unlist)
lapply(d, unlist, use.names=FALSE)
没有一个达到预期的结果,在示例中是一个长度为 5 的单个列表,所有项目都是data.frame
。任何建议表示赞赏。