来自 for 循环内部的动态状态消息

Dynamic status message from inside a for loop

我有时会(嵌套)for 循环,这需要一段时间,所以我喜欢在索引中添加一条消息。通常,我这样做:

for (i in 1:1000) {
  cat(paste0(i, " "))
}

但我已经尝试过其中任何一个:

for (i in 1:1000) {
  print(i)
}
for (i in 1:1000) {
  cat(paste(i, " ")) # or "\n", doesn't matter
}
for (i in 1:1000) {
  message(i)
}

然而,这显然会连续生成文本(在这个例子中,消息会很快通过,但正如我所说,我经常做嵌套的 for 循环,这需要相当长的时间)。但是,我想做一个动态消息,在我的控制台上有一个不断变化的数字(索引)。我想这样的事情是可能的,因为当你安装一个包时(或当使用 gganimate 时),有一行不断变化为 = 标志,表示进度(这是下一级的东西,但应该背后有相同的想法)。

我不知道该怎么做。我的猜测是有一些与 \n 相同的上下文,比如 \s(我知道它不存在,但它只是提供了一个想法),或者可能有第三个功能(或其他东西与 message() 有关,我不完全理解)除了 print()cat()message().

如果每次清空控制台都可以,可以:

for (i in 1:1000) {
    for(j in 1:1000){
        for(k in 1:1000){
            cat(paste('4',i, j, k))
        }
    }
}