草薙の研究ログ

英語の先生をやってます。

R連携アプリ開発関係メモ(1):Rscriptでbat実行するときに,コマンドプロンプトを表示しない簡単な方法はVBScript

美しいリレーの話。

まずはRのスクリプトファイル(.r)を用意する(a.rとする)。

それでこのスクリプトファイルをRscriptで実行するバッチファイル(b.bat)を用意する。

このバッチファイルを実行するVBScript(c.vbs)を用意する。

vbsは,コマンドプロンプトの表示なしでbatをバックグラウンドで実行させることができる。

HSPといったプログラム言語で以上のスクリプトを自動生成する実行ファイルを用意する(d.exe)。HSPでは,vbsを起動させる命令execなどがある。このd.exeからc.vbsを実行させるとよい。

最初のRスクリプトで.csv,.html,または.pdfで分析結果を出力するようにする(knitr,hwriterなど)。さらにRの命令の中でこれらのファイルを即座に自動に開くことができる。この流れ。

 

作業の流れとしては,d.exeから,a.r,b.bat,c.vbsをそれぞれ自動生成。それでc.vbsを起動し,コマンドプロンプト表示無しでb.batがRscriptに渡してa.rを開始。a.rが.htmlなどで出力を行い,開く。たとえばブラウザでその.htmlが立ち上がった段階で,a.r,b.bat,c.vbsを削除する。すると,まったくRで計算させたように見せないで,実行ファイルだけからすべて計算してブラウザに出力したように見える。

d.exeにUIをつければ,実質はRなんだけど,ぜんぜんRを話しているようには見えない統計アプリが開発できる(ていうかもうできちゃった)。

というか開発技術的にすごく簡単なので誰でもこれでRでやる作業を実行ファイルでまとめて自動化できるし,R言語とかbatとか知らないひと向けのアプリにできる。