6

では、進行中の進行状況を知りたいRという長い質問をすることがfor loopあります。lapply

次のようなものは、私が望むものの精神にありますが、機能しません:

lapply(1:n,function(i) { print(i); MAIN COMPUTATIONS })

理想的には、上記ilapply.

質問:lapply自分または行った反復回数の継続的な進行状況の更新を取得するにはどうすればよいfor loopですか?

4

3 に答える 3

8

WindowsでRGuiを使用しているようです。いずれかのメニューに、出力をバッファリングしないように指示するオプションがあるはずです。flush.consoleまたは、印刷するたびに呼び出すこともできます。

lapply(1:1000, function(i){print(i); flush.console()})

これにより、コードが少し遅くなることに注意してください。

于 2012-12-12T03:30:38.873 に答える
6

プライアを使用したソリューション

 l_ply(1:10,function(x) x+1,.progress='text')

または、を使用して進行状況を定義できますprogress_text

 l_ply(1:10000,function(x) x+1,.progress= progress_text(char = '*'))
|*********************************************************************| 100%

またはオプション print を使用して、各反復の結果を取得します

     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]
于 2012-12-12T03:29:54.207 に答える
3

winProgressBartkProgressBar、またはなどの関数も参照してくださいtxtProgressBar。windows バージョンと tk バージョンは、進行状況を表示できるという点で優れていますが、出力が乱雑になることはありません。

于 2012-12-12T04:33:31.630 に答える