我正在尝试在函数中实现进度条以用于 drake-r 项目。我正在使用 progress_bar R6 类的进度包。以下示例生成预期的进度条:
library(dplyr)
library(purrr)
library(progress)
data <- mtcars %>%
split(.$carb)
n <- length(data)
pb <- progress::progress_bar$new(total = n)
data <- data %>%
map(~{pb$tick()
Sys.sleep(2)
lm(mpg ~ wt, data = .x)
})
如果我把它放到我的德雷克工作流程中,每次迭代都会显示一个新的进度条:
fit_lm <- function() {
data <- mtcars %>%
split(.$carb)
n <- length(data)
pb <- progress::progress_bar$new(total = n)
data <- data %>%
map(~{pb$tick()
Sys.sleep(2)
lm(mpg ~ wt, data = .x)
})
return(data)
}
plan <- drake_plan(
models = fit_lm()
)
make(plan)
如何修改函数以仅显示一个在每次迭代时更新的进度条?