print()循环内调用的输出是否可以在循环的每次迭代中在控制台/交互式 Markdown 文件中替换自身?如果重要的话,我会在 RStudio 中完成所有 R 编码。
例如,这是我当前观察到的行为:
for (i in 1:20){
print(paste('iteration', i))
}
[1] "iteration 1"
[1] "iteration 2"
[1] "iteration 3"
[1] "iteration 4"
[1] "iteration 5"
[1] "iteration 6"
[1] "iteration 7"
[1] "iteration 8"
[1] "iteration 9"
[1] "iteration 10"
[1] "iteration 11"
[1] "iteration 12"
[1] "iteration 13"
[1] "iteration 14"
[1] "iteration 15"
[1] "iteration 16"
[1] "iteration 17"
[1] "iteration 18"
[1] "iteration 19"
[1] "iteration 20"
Run Code Online (Sandbox Code Playgroud)
对于相对较少的迭代次数,这并不是那么糟糕,但我确实喜欢打印出迭代,以便我可以跟踪它 - 特别是当有大量迭代时。那么有没有办法iteration 1在第一次迭代时打印,然后用iteration 2等等替换该文本?
在 Python 中,我主要使用 Jupyter,您可以通过导入clear_output函数IPython.display并在每次迭代调用之前立即调用它来实现此目的print()。例如
from IPython.display import display, clear_output
for i in range(1, 21):
clear_output(wait=True)
print('iteration', i)
Run Code Online (Sandbox Code Playgroud)
R/RStudio中有类似的东西吗?
您可以使用cat和\r换行符(但不能使用\n换行符)。
for (i in 1:3) {
cat(paste("\riteration", i))
Sys.sleep(1)
}
cat("\n")
Run Code Online (Sandbox Code Playgroud)