如何在R控制台中输出文本而不创建新行?

Duc*_*tro 48 newline r output-formatting rstudio

我想在漫长的运行算法中输出进度指示器.我可以轻松地从我的算法中"冒泡"一个进度值(例如,通过专门为此目的调用提供的函数回调),但困难在于实际的文本输出过程.每次调用print都会创建一个新行,每行都有一个前缀[1].

有没有办法在不同时刻打印,而不会引入换行符?

具体来说,我希望实现一个"动画",如果在两个不同的时间观察,它将如下所示.

0%...
Run Code Online (Sandbox Code Playgroud)

...

0%...2%...4%...
Run Code Online (Sandbox Code Playgroud)

And*_*rie 53

使用cat()而不是print():

cat("0%")
cat("..10%")
Run Code Online (Sandbox Code Playgroud)

输出:

0%..10%
Run Code Online (Sandbox Code Playgroud)


Rom*_*rik 9

呸,安德莉在28秒内击败我.

> for (i in 1:10) {
+ cat(paste("..", i, ".."))
+ }
.. 1 .... 2 .... 3 .... 4 .... 5 .... 6 .... 7 .... 8 .... 9 .... 10 ..
Run Code Online (Sandbox Code Playgroud)


ags*_*udy 8

也许你可以 plyr

  l_ply(1:4,function(x) x+1,.progress= progress_text(char = '+'),.print=TRUE)
  |                                 |   0%[1] 2
  |++++++                           |  25%[1] 3
  |+++++++++++++++                  |  50%[1] 4
  |++++++++++++++++++++++           |  75%[1] 5
  |++++++++++++++++++++++++++++++++ |  100%[1]
Run Code Online (Sandbox Code Playgroud)


S. *_*ica 5

如果您确实需要进度条,请使用txtProgressBar控制台输出.或者winProgressBar在Windows下用于窗口化进度条.