【效率提升】监控R语言程序的运行进度
说在前面
在用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)
相关文章