假设我有以下 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/3
, 2/3
, 3/3
),这既烦人又麻烦,尤其是在较长的脚本上。我的想法是将这些分数设置为currentScriptLine/totalScriptLines
,但我不知道如何设置这些参数。根据我的研究,R 没有从当前运行的脚本返回当前行数或总行数的函数。或者有吗?我还能如何解决这个问题,让用户反馈他在脚本上的进展情况?