【发布时间】:2019-07-09 21:52:29
【问题描述】:
在 R 中,如何使 foreach 循环中生成的每个数据帧在全局环境中作为单独的数据帧可用
我只能将它们保存到一个列表 (x) 中,但该列表有 3 层;有超过 40,000 个数据帧,解包非常耗时。
x <- foreach(q=1:countq, .export = ls(globalenv())) %do% {
foreach(p=1:countp, .export = ls(globalenv())) %do% {
foreach(o=1:countero, .export = ls(globalenv())) %dopar% {
n<-rbind(df_o, df_p, df_q)
}
}
如果从这个嵌套的 foreach 循环中获得数据帧 n1、n2、n3、...直到 n40000,那就太好了。
【问题讨论】:
-
您不会尝试从另一个 R 会话访问一个 R 会话环境中的变量。虽然我理解处理多层列表的困难,但我建议您的问题应该与
foreach和所有关于“嵌套列表”的问题有关。也许如果您提供一个示例(可能是 2-3 个简单的三重嵌套列表),我们可以帮助您进行所需的聚合和/或提取。 (为此,我们还需要知道您需要从他们那里得到什么,即预期输出。) -
对于一个好的数据样本,我建议使用
dput的输出,可能类似于mt <- mtcars[1:2,]; dput(replicate(3, replicate(2, replicate(2, mt, simplify=F), simplify=F), simplify=FALSE))。只是一个想法,关键是dput(head(x))其中x是您的嵌套列表。
标签: r foreach global environment