有没有办法编写一个自定义for()
函数,其行为与for()
完全相同,但会做一些额外的事情?
我想要做的是修改for()
功能,启动进度条。
作为一个例子,当我想通过循环显示进度时,我现在使用progress::progress_bar()
如下:
pb <- progress_bar$new(total = 100)
for (i in 1:100) {
pb$tick()
Sys.sleep(1 / 100)
}
我想要的是能够拥有这样的功能:
for_pb <- function(var in seq, ...) {
pb <- progress::progress_bar$new(total=length(seq))
for(var in seq) {
pb$tick()
... #The rest of the code in the for loop
}
}
结果,以下调用将产生与初始示例相同的输出:
for_pb(i in 1:100) {
Sys.sleep(1 / 100)
}