如何在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窗口进度条。