我写了一个函数,它需要一些时间来运行(由于一个巨大的数据集上的 1000+ 循环与预测模型测试相结合)。
为了对状态有任何了解,在调用函数时,我在message
函数的 for 循环内使用命令。问题是函数完成后所有消息都显示在控制台中,而不是立即显示。所以它对我没有帮助:)
我试图在 Stackoverflow 上找到解决方案,但没有找到。例如,我查看了“在 R 中显示状态消息”这个问题。在处理函数后,该主题中的所有答案和示例代码仍然只给我控制台中的文本,而不是立即给我。
如何解决这个问题?R 中是否存在阻止message
在控制台中立即打印文本的设置?
注意:我在下面尝试的示例,其结果与我的函数相同;处理函数后显示文本。
示例 1(约书亚·乌尔里希):
for(i in 1:10) {
Sys.sleep(0.2)
# Dirk says using cat() like this is naughty ;-)
#cat(i,"\r")
# So you can use message() like this, thanks to Sharpie's
# comment to use appendLF=FALSE.
message(i,"\r",appendLF=FALSE)
flush.console()
}
示例 2(泰勒):
test.message <- function() {
for (i in 1:9){
cat(i)
Sys.sleep(1)
cat("\b")
}
}
编辑:第一个示例确实有效(“刷新控制台”是问题)......但是当我测试它时,我出于某种原因注释掉了刷新控制台:S