覆盖R控制台中的当前输出

Zac*_*ach 13 console time r date

我一直在玩R函数txtProgressBar().如何劫持函数覆盖控制台中当前输出的能力?

即进度条更新如下:

> some R function
============
Run Code Online (Sandbox Code Playgroud)

> some R function
========================
Run Code Online (Sandbox Code Playgroud)

> some R function
============
========================
Run Code Online (Sandbox Code Playgroud)

例如,如何编写将在控制台中显示当前时间的函数:

> some R function
13:01
Run Code Online (Sandbox Code Playgroud)

> some R function
13:02
Run Code Online (Sandbox Code Playgroud)

> some R function
13:01
13:01
13:01
13:01
13:02
13:02
13:02
13:02
Run Code Online (Sandbox Code Playgroud)

Gre*_*now 15

而不是"\ b\b\b\b"你可以只使用"\ r"转到行的开头并覆盖行上的所有内容(确保仍然使用cat而不是放入换行符).

虽然如果要显示进度,最好使用winProgressBar(仅限windows)或tkProgressBar(tcltk包,所有平台),除了进度条之外,还可以使用标签进行更新.

在Windows上,您还可以使用setWindowTitle或setStatusBar函数将该类型的信息放入较大窗口的顶部或底部.


Zac*_*ach 13

这个程序似乎有效:

while (1) {
cat('\b\b\b\b\b\b',format(Sys.time(),'%H:%M'))
flush.console() 
}
Run Code Online (Sandbox Code Playgroud)

这有什么理由可能是个坏主意吗?

/编辑:更好(感谢@Greg Snow):

while (1) {
cat('\r',format(Sys.time(),'%H:%M:%S'))
flush.console() 
}
Run Code Online (Sandbox Code Playgroud)