在循环之外实现txtProgressBar

时间:2015-04-22 20:23:19

标签: r progress-bar user-feedback

假设我有以下R脚本,其中cat向用户提供有关正在执行的操作的一些反馈,Sys.sleep代表正在进行的实际计算:

cat("Doing something\n")
Sys.sleep(1)
cat("Doing something else\n")
Sys.sleep(1)
cat("Finalizing\n")
setTxtProgressBar(pb, 3/3)

我想在cat次调用中插入一个进度条(双关语并非意图),以便用户知道它们在脚本中的位置。这是我到目前为止所能提出的:

pb <- txtProgressBar(style = 3)
cat("\nDoing something\n")
Sys.sleep(1)
setTxtProgressBar(pb, 1/3)
cat("\nDoing something else\n")
Sys.sleep(1)
setTxtProgressBar(pb, 2/3)
cat("\nFinalizing\n")
setTxtProgressBar(pb, 3/3)

这个问题是我必须手动设置进度条更新(1/32/33/3),这很烦人且很麻烦,尤其是在较长的脚本上。我的想法是将这些分数设置为currentScriptLine/totalScriptLines,但我不知道如何设置这些参数。根据我的研究,R没有函数从当前运行的脚本返回当前行数或总行数。还是有吗?我怎么能解决这个问题,即向用户提供关于他在脚本上的距离的反馈?

0 个答案:

没有答案