R:在现有循环中放置winprogressbar代码的位置?

时间:2015-08-27 19:15:59

标签: r loops

我想在R中为我的脚本添加一个进度条,但我不知道在我的循环中将它放在哪里。 winProgressbar的代码位于互联网下方。我应该把这个代码放在我的循环中?

谢谢!

pb< - winProgressBar(title =“进度条”,min = 0,                       max = total,width = 300)

for(i in 1:total){
 Sys.sleep(0.1)
 setWinProgressBar(pb, i, title=paste( round(i/total*100, 0),
                                       "% done"))
 }
 close(pb)

1 个答案:

答案 0 :(得分:0)

要跟踪整个脚本或程序的进度,您只需将初始化函数(winProgressBar)放在代码的开头,并通过setWinProgressBar在流程中的关键点进行更新你的程序。例如,如果您的代码执行的第一个任务通常占用所需总时间的大约10%,则在该任务完成后将该值设置为10%。

您的代码可能如下所示:

your_function <- function(arg1, arg2, arg3) {
  #add random stuff here like loading packages

#create your progress bar
pb <- winProgressBar(title = "progress bar", min = 0, max = 100, width = 300)

#insert part 1 of your code, let's say it takes 10% of your total processing time

setWinProgressBar(pb, 10, label = paste(round(10/total*100, 0),"% done"))

#insert part 2 of your code, let's say it takes 25% of your total processing time

setWinProgressBar(pb, 35, label = paste(round(35/total*100, 0),"% done"))

etc...

close(pb)

}

您也可以将它放在功能的外部,类似于您提供的示例。