製造系SEのメモ

普段気になった内容をメモしていきます

Rでfor文内処理の進捗確認

f:id:asakat:20190130204302j:plain

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%

処理時間が長い場合、これがあるのと無いのとでは大違いですね。



短いですが以上です。