【发布时间】:2018-03-10 06:07:43
【问题描述】:
可以这样做吗?我想在 R 中同时显示两个垂直堆叠的进度条,因为一个函数在另一个更大的函数中运行。
一个用于较大功能的整体进程状态,另一个用于功能内的各个进程(下载等)。
如果可能的话,我想使用进度包的 progress_bar(如果不可能的话,base 或任何很酷的解决方案!:))
我想留在控制台中,而不是使用 tk 或类似的解决方案绘制进度条(https://www.r-bloggers.com/multiple-progress-bars/)
提前致谢!
以下示例在进度(首选)和 Base R 中模拟所需的功能和结果:
###Example in progress package(preferred)
library(progress)
###Create the progress bars
overallbar <- progress_bar$new(
format = " downloading :what [:bar] :percent Guestimated Remaining OVERALL: :eta",
clear = FALSE, total = 1000, width = 60)
statusbar <- progress_bar$new(
format = " [:bar] :percent Guestimated Remaining CURRENT FILE: :eta",
clear = FALSE, total = 100, width = 60)
###Only displays the statusbar when I'd like to display both
for (i in 1:1000) {
overallbar$tick()
statusbar$tick()
Sys.sleep(1 / 1000)
}
###Desired outcome (imitation only)
downloading THIS FILE NOW [] 100% Guestimated remaining OVERALL: 0s
[============] 100% Guestimated remaining CURRENT FILE: 0s
一个使用 BASE R INSTEAD 的示例(不如进度包样式需要):
###Base R
pb1 <- txtProgressBar(1, 1000, style=3)
pb2 <- txtProgressBar(title="File Progress",1, 100, style=3)
###Like progress, base also only displays the second progress bar
cat("OVERALL PROGRESS:")
for (i in 1:1000) {
setTxtProgressBar(pb1, i)
###something is funky with the title option, not working
###I usually use progress package, you get the idea, I'd like a title
setTxtProgressBar(title="File Progress:", pb2, i)
Sys.sleep(1 / 1000)
}
###Desired outcome (imitation only)
OVERALL PROGRESS:
|========================================================================================| 100%
File Progress:
|========================================================================================| 100%
【问题讨论】:
标签: r function console progress-bar progress