我正在 R 中运行以下类型的循环:
for(i in 1:N){...}
我想要一个计数器来显示循环过程中i
的当前值。我希望它能够跟踪我距离循环终点还有多远。一种方法是简单地将 print(i)
插入循环代码中。例如,
for(i in 1:N){
...substantive code that does not print anything...
print(i)
}
这完成了工作,为您提供正在运行的i
。问题是它在新行上打印每个值,la,
[1] 1
[1] 2
[1] 3
这会占用大量控制台空间;如果N
很大,它将耗尽所有控制台空间。我想要一个不会占用太多控制台空间的柜台。 (有时,能够向上滚动控制台来检查以确保您正在运行您认为正在运行的内容是很好的。)因此,我希望有一个显示为的计数器,
[1] 1 2 3 ...
达到控制台宽度后继续换行。我时常看到这种情况。有什么技巧可以实现这一点吗?
最佳答案
尝试使用函数flush.console()
for (i in 1:10){
cat(paste(i, " ")); flush.console()
}
给出
1 2 3 4 5 6 7 8 9 10
这里对代码进行了一个小修改,它将仅打印一个数字并在每次运行时递增它。它使用回车符 (\r) 序列来避免控制台中出现一长串数字。
for(i in 1:100) {
Sys.sleep(.1) # some loop operations
cat(i, "of 100\r")
flush.console()
}
关于r - 显示跨一条显示行的循环计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249317/