假设我有以下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没有函数从当前运行的脚本返回当前行数或总行数。还是有吗?我怎么能解决这个问题,即向用户提供关于他在脚本上的距离的反馈?