Rでfor文内処理の進捗確認
Rでfor文内処理の進捗を表示したくなったので方法をメモします。
必要なパッケージ
進捗を表示する一番簡単な方法は、tcltkパッケージのtxtProgressBar()関数とsetTxtProgressBar()関数を使ってプログレスバーを表示する方法のようです。
あらかじめ
install.packages("tcltk")
でパッケージをインストールしておきます。
txtProgressBar()関数とsetTxtProgressBar()関数
txtProgressBar()関数はプログレスバーを準備する関数、setTxtProgressBar()関数はプログレスバーを表示する関数です。
サンプルは以下の通りです。
library(tcltk) n <- 100000 #minでループ変数の最小値、maxでループ変数の最大値、styleで表示スタイル(基本は3?)を設定 pb <- txtProgressBar(min=1, max=n, style=3) for(i in 1:n){ #準備したプログレスバー(pb)とループ変数(i)を指定 setTxtProgressBar(pb, i) }
サンプルでは最低限のオプションしか書いてないので、詳細は以下のページをご確認ください(英語です)。
txtProgressBar function | R Documentation
サンプルを実行すると以下の様なプログレスバーが表示され、処理の進捗に応じて「=」の数とパーセンテージが増加します。
|======================== | 50%
処理時間が長い場合、これがあるのと無いのとでは大違いですね。
短いですが以上です。