如何在R控制台中输出文本而不创build新行?
我想在我漫长的运行algorithm中输出一个进度指示器。 我可以很容易地从我的algorithm中“冒泡”一个进度值(例如通过调用一个专门为此提供的函数callback),但是难度在于实际的文本输出过程。 每一个print
电话都会创build一个新行,每个行都加上前缀[1]
。
有没有办法在不同时间打印,而不会引入换行符?
具体而言,我想要实现一个“animation”,如果在两个不同的时间观察,看起来会像下面这样。
0%...
…
0%...2%...4%...
使用cat()
而不是print()
:
cat("0%") cat("..10%")
输出:
0%..10%
也许你可以使用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]
Bah,Andrie打了我28秒。
> for (i in 1:10) { + cat(paste("..", i, "..")) + } .. 1 .... 2 .... 3 .... 4 .... 5 .... 6 .... 7 .... 8 .... 9 .... 10 ..
如果您真的需要进度条,请使用txtProgressBar
作为控制台输出。 或Windows下的winProgressBar
窗口进度条。