我正在尝试向 R 中的引导函数添加一个进度条。我试图使示例函数尽可能简单(因此我在本示例中使用了 mean)。
library(boot)
v1 <- rnorm(1000)
rep_count = 1
m.boot <- function(data, indices) {
d <- data[indices]
setWinProgressBar(pb, rep_count)
rep_count <- rep_count + 1
Sys.sleep(0.01)
mean(d, na.rm = T)
}
tot_rep <- 200
pb <- winProgressBar(title = "Bootstrap in progress", label = "",
min = 0, max = tot_rep, initial = 0, width = 300)
b <- boot(v1, m.boot, R = tot_rep)
close(pb)
Run Code Online (Sandbox Code Playgroud)
引导程序正常运行,但问题是rep_count
循环中的值没有增加,并且在此过程中进度条保持冻结状态。
如果我rep_count
在引导完成后检查 的值,它仍然是 1。
我究竟做错了什么?也许引导函数不是简单地将m.boot
函数插入到循环中,因此其中的变量不会增加?
谢谢你。