进度包是否也适用于 doMC 包?
还是水货包? 如果没有,请为此功能 +1。
老实说,我不确定实现这一点需要什么。 例如,对于并行,人们需要并行来回传已经完成了多少工作。 这甚至可能吗?
@gaborcsardi我做了一些搜索,以下是我发现的:
library("foreach")
library("doParallel")
library("progress")
registerDoParallel(parallel::makeCluster(7, outfile = ""))
pb <- progress_bar$new(
format = " [:bar] :percent in :elapsed",
total = 30, clear = FALSE, width = 80, force = T)
a <- foreach (i = 1:30) %dopar% {
pb$tick()
Sys.sleep(0.5)
}
pb <- txtProgressBar(title = "Iterative training", min = 0, max = 30, style = 3)
foreach (i = 1:30) %dopar% {
setTxtProgressBar(pb, i)
Sys.sleep(0.5)
}
stopCluster(cl)
txtProgressBar
仅在 stype 为 2 或 3 时有效。根据函数手册:
style = 1 和 style = 2 只显示一行字符。 它们的不同之处在于 style = 2 每次重新绘制线条,这在其他代码可能正在写入 R 控制台时很有用。 style = 3 通过 | 标记范围的结束并在条形右侧给出一个百分比。
我认为txtProgressBar
工作的原因是因为outfile = ""
在创建集群时存在。
我认为模仿txtProgressBar
为样式 2 所做的会解决这个问题。
最有用的评论
还是水货包? 如果没有,请为此功能 +1。