では、進行中の進行状況を知りたいR
という長い質問をすることがfor loop
あります。lapply
次のようなものは、私が望むものの精神にありますが、機能しません:
lapply(1:n,function(i) { print(i); MAIN COMPUTATIONS })
理想的には、上記i
はlapply
.
質問:lapply
自分または行った反復回数の継続的な進行状況の更新を取得するにはどうすればよいfor loop
ですか?
WindowsでRGuiを使用しているようです。いずれかのメニューに、出力をバッファリングしないように指示するオプションがあるはずです。flush.console
または、印刷するたびに呼び出すこともできます。
lapply(1:1000, function(i){print(i); flush.console()})
これにより、コードが少し遅くなることに注意してください。
プライアを使用したソリューション
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]
winProgressBar
、tkProgressBar
、またはなどの関数も参照してくださいtxtProgressBar
。windows バージョンと tk バージョンは、進行状況を表示できるという点で優れていますが、出力が乱雑になることはありません。