【效率提升】监控R语言程序的运行进度

2020-06-17 00:00:00 代码 循环 关注 进度条 进度

说在前面

在用R语言做数据分析处理的过程中,我们经常会碰到一些数据量比较大进而导致循环执行好久的情况。等待的过程太煎熬了,关键的是我们不知道现在已经完成了多少进度,从而决定是否停止重新修改代码。

有人建议我们可以用cat函数来不断进行打印实现这一目的,然而再某些循环中,所有的cat语句输出结果会在所有代码运行完成之后才会显示,而不是我们期望的一次循环即是输出一条cat语句。

tcltk包

所以我们就必须借助的R包来实现这个功能。一些论坛上的文章介绍了tcltk这个包,其中有一个函数tkProgressBar便可以帮助我们做到这一点。具体代码如下:

library(tcltk)  
u <- 1:2000  
  
#开启进度条  
  
pb <- tkProgressBar("进度","已完成 %", 0, 100)  
  
for(i in u) {  
   info<- sprintf("已完成 %d%%", round(i*100/length(u)))  
   setTkProgressBar(pb, i*100/length(u), sprintf("进度 (%s)", info),info)  
}     

#关闭进度条  
close(pb)  

相关文章