【问题标题】:Can't print to console from within while-loop in R无法从 R 的 while 循环中打印到控制台
【发布时间】:2017-06-02 14:31:26
【问题描述】:

我正在 Windows 的 Rgui.exe 窗口中运行这段代码:

i = 1
while(i <= 10){
    cat(i, "\n") 
    i = i + 1
    Sys.sleep(2)
}

cat() 片段不是每 2 秒输出一次,而是仅在 20 秒结束时集体输出,即 10 次迭代。

我习惯于 print() 和 cat() 调用立即获得输出,所以我不知道为什么会发生这种情况。

如何在每次迭代中立即打印 R?

【问题讨论】:

  • 它对我有用。您使用的是什么系统/R?无论如何,请考虑在此处改用message,这似乎更适合进度消息等。

标签: r loops console output


【解决方案1】:

这是“输出缓冲”;在使用cat 后尝试flush.console()。从帮助页面:

除了基于控制台的 R 版本之外,这没有任何作用。在 macOS 上 和 Windows GUI,它确保在控制台中显示输出 是当前的,即使输出缓冲已打开。

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2014-06-16
    • 2015-11-28
    • 2013-05-25
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    相关资源
    最近更新 更多