假设我有一个包含for
循环部分的函数。这个for
循环适用于10
次迭代。我如何从结果中知道函数现在在级别(迭代)数字上工作,比如5
。
也就是说,我希望我的函数让我知道当前的迭代次数。
例如, 我希望结果是这样的:
Iteration 1 starts
some result
iteration 1 ends
iteration 2 starts
some result
iteration 2 ends
...
...
请注意,这不是我原来的功能。在我的原始函数中,我在模型列表上使用optim
函数,我真的需要知道当前模型是什么。
这是一个一般例子:
Myfun <- function(x,y){
v <- list()
for(i in 1:100){
v[[i]] <- sum(x[[i]], y[[i]])
cat(v, "\n")
}
v
}
x <- rnorm(100)
y <- rnorm(100)
Myfun(x=x, y=y)
答案 0 :(得分:0)
在for
循环内输出当前迭代步骤。
Myfun <- function(x,y) {
v <- list()
for (i in 1:100) {
v[[i]] <- sum(x[[i]], y[[i]])
cat(sprintf("Step %i / 100 done\n", i))
}
v
}
使用进度条(有关详细信息,请参阅?txtProgressBar
。)
Myfun <- function(x,y) {
v <- list()
pb <- txtProgressBar(min = 0, max = 100, style = 3)
for (i in 1:100) {
v[[i]] <- sum(x[[i]], y[[i]])
setTxtProgressBar(pb, i)
}
close(pb)
v
}
请注意,原始cat(v, "\n")
中的Myfun
行会出错。