51

長時間実行しているアルゴリズムの実行中に進行状況インジケーターを出力したいと思います。アルゴリズム内から(たとえば、この目的のために提供された関数コールバックを呼び出すことによって)進行状況の値を簡単に「バブルアップ」できますが、実際のテキスト出力プロセスに問題があります。を呼び出すたびprintに新しい行が作成され、それぞれの前に。が付き[1]ます。

改行を導入せずに、さまざまな時点で印刷する方法はありますか?

具体的には、2つの異なる時間に観察すると次のような「アニメーション」を実現したいと思います。

0%...

..。

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

5 に答える 5

60

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

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

出力:

0%..10%
于 2013-01-18T09:15:49.553 に答える
13

ああ、アンドリーは私に28秒差をつけた。

> for (i in 1:10) {
+ cat(paste("..", i, ".."))
+ }
.. 1 .... 2 .... 3 .... 4 .... 5 .... 6 .... 7 .... 8 .... 9 .... 10 ..
于 2013-01-18T09:16:40.527 に答える
9

多分あなたはyseすることができます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]
于 2013-01-18T09:18:19.437 に答える
6

プログレスバー自体が本当に必要な場合はtxtProgressBar、コンソール出力に使用します。またはwinProgressBar、ウィンドウ表示されたプログレスバーの場合はWindowsの下。

于 2013-01-18T09:31:17.563 に答える