r foreach:修改.combine创建相当于dplyr :: bind_rows并包括进度栏
采用以下MWE:
df <- data.frame(id =seq(1,100,1),random = seq(2,200,2))
cl <- parallel::makeForkCluster(5) # do not change
doParallel::registerDoParallel(cl) # do not change
results <- foreach::foreach(i=unique(df$id),.combine =dplyr::bind_rows) %dopar% {
data <- df %>% dplyr::filter(id == i) %>%
dplyr::mutate(result = random^2) # just a non-sense calculation
}
parallel::stopCluster(cl)
由于几个原因,我想坚持 makeForkCluster
启动并行后端,我也想获取一个data.frame而不是列表。
有两个问题:
- 如何创建
comb <- function()
与上述完全相同的结果,并使用 .combine ='comb'
。我真的很挣扎着 .combine
。
- 有什么方法可以在该MWE中包含一个简单的进度栏 - 我知道还有其他几个包/后端可以用于Inlcude Progress Bars,但是我想使用
MakeForkCluster
从软件包>并行。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论