可使用R内置库 utli 实现文本进度条功能,内容涉及以下几个方法:
1、txtProgressBar(min = 0, max = 1, initial = 0, char = "=", width = NA, style = 1, file = "")
作用:用于在R控制台(或文件连接)中显示文本进度条;结束时应关闭进度条,此时输出换行符
min:默认0,进度条数值下限,必须小于 max
max:默认1,进度条数值上限,必须大于 min
initial:默认0,进度条的初始值或新值
char:默认"=",表示进度过程的符号
width:默认NA,进度条宽度,为char宽度的倍数;为NA时与 getOption("width") 适应
style:默认1,用于指定进度条样式种类;样式1和2仅显示 char 组成的线,区别在于样式2每次重画一条线,在有其他代码向控制台写入内容时有用;样式3使用竖线“|”指定进度区间,同时在进度条右侧显示百分进度
file:默认""(空),默认为控制台console,或一个打开的连接对象
另外,还需要通过setTxtProgessBar更新进度条值(需要传入txtProgressBar对象和数值作为参数),具体使用过程即结果如下所示:
假设实现一个一分钟计时功能:
以上是本文进度条的建立,还可通过 winProgressBar、tkProgressBar 实现窗口进度条,用法存在一些差别:
2、winProgressBar(title = "R progress bar", label = "", min = 0, max = 1, initial = 0, width = 300)
建立一个 Windows 进度条窗口小部件,显示更新及其获取(仅使用于 Windows 系统);显示在屏幕中间;使用后应关闭,尽管R对象终止时会被垃圾回收;
title:默认"R progress bar",对话框窗口标题
label:默认""(空),对话框窗口标签
min:默认 0,进度条最小值
max:默认 1,进度条最大值
initial:默认 0,进度条初始值
width:默认 300,进度条宽度,单位像素;对话框宽度在此基础上再加40像素
注意:如果要在 setWinProgessBar 中显示label,应先在 winProgressBar 中初始化label,否则不显示更新;
3、tkProgressBar(title = "R progress bar", label = "", min = 0, max = 1, initial = 0, width = 300)
使用 tcltk 包实现进度条,即使用Tk脚本实现窗口进度条,可运行于Windows系统(要求Tk >= 8.5),默认显示于屏幕左上角;
参数使用同 winProgressBar;
注意:如果要在 setTkProgessBar 中显示label,不必先在 tkProgressBar 中初始化label;