2013-01-18 2 views
41

長い実行アルゴリズムで進捗インジケータを出力したいと思います。アルゴリズム内から進捗値を簡単に「バブルアップ」することができます(たとえば、この目的のために提供された関数コールバックを呼び出すなど)が、実際のテキスト出力プロセスにはあります。 printを呼び出すたびに新しい行が作成され、接頭辞はそれぞれ[1]となります。新しい行を作成せずにRコンソールにテキストを出力するには?

改行を挿入せずに、異なる瞬間に印刷する方法はありますか?

具体的には、2つの異なる時間に観察された場合、次のような「アニメーション」を達成したいと考えています。

0%... 

...

0%...2%...4%... 

答えて

46

代わりprint()の使用cat()

cat("0%") 
cat("..10%") 

出力:

0%..10% 
7

をフン、Andrieは28秒で、それを私に勝ちました。

> for (i in 1:10) { 
+ cat(paste("..", i, "..")) 
+ } 
.. 1 .... 2 .... 3 .... 4 .... 5 .... 6 .... 7 .... 8 .... 9 .... 10 .. 
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] 
4

をYSEコンソール出力用のtxtProgressBarを使用することができます。 Windowsの場合はwinProgressBarにウィンドウの進行状況バーが表示されます。

関連する問題