2015/03/31

R ポータブル版の準備と PostgreSQL への接続(1)

[R][実行環境]
以下 Windows 7 32bit での作業経過です。元々 R はインストール版でもポータビリティが高く、プログラムフォルダを移動しても実行ファイルを起動でき、入れたパッケージもそのまま使えます。だからインストール版を自分でポータブル化してもいいのですが、せっかくポータブル版があるので(R Portable)これを USB メモリに入れ、どの PC でも同じ設定・パッケージ構成で使えるようにしました。

今日は R の起動まで、明日は PostgreSQL への接続について書きます。後者では 2015/03/28 で準備したポータブル版サーバを使用。これで R + PostgreSQL / PostGIS / pgRouting を手軽に持ち運べます。まず ↓ から R Portable をダウンロード。

■ R Portable : Files


↑ こんな風に最新まで各バージョンが揃っています。今までインストール版の 3.1.2 を使ってきたため、それに合わせて R-Portable_3.1.2.paf.exe を選択。

以下、すべてゲストユーザ上で作業しました。まず上のファイルを実行。画面に「インストール」と出ていますが、実質、指定されたフォルダにファイル一式が解凍されるだけです。







↓ 指定したフォルダの直下に R-Portable.exe という起動用ファイルが作られますが、後述する理由でこれは使いません。フォルダ App/R-Portable が実際の R のプログラムフォルダ。その中の構成はインストール版と同じで、bin フォルダ内にある実行ファイルや library フォルダ内に置かれるデフォルトパッケージも、インストール版と同じです。





先ほど書いた R-Portable.exe を使わない理由は、これが単に Rgui.exe を起動するだけだから。App/AppInfo/Lancher/R-Portable.ini という設定ファイルで ↓ 分かります。



上のように Rgui.exe を直接起動すると、GUI の設定ファイル(Rconsole)がシステムドライブ側にあると認識され、見つからない場合は常に ↓ こんな感じで起動されます。そこで一工夫し、Rconsole や起動オプションを一緒に持ち運べるようにします。


方法は簡単で、下のような短いバッチファイルを作り、適当な場所に置きます。二行目でセットしている HOME という環境変数が R 起動時のカレントフォルダになり、GUI 設定もここの Rconsole を参照します。R が使う環境変数の詳細は R Documentation : EnvVar {base} を参照。三行目の起動オプションは任意ですが、ここでは --no-save で終了時の「ワークスペースを保存しますか」ダイアログを非表示、-q で起動時の長いメッセージを非表示にしました。

@echo off
set HOME=\R-Portable
start "" %HOME%\App\R-Portable\bin\i386\rgui.exe --no-save -q
exit


↓ Rgui.exe の起動オプションは --help で確認できます。ただし -q は明記なし。


↓ R-Portable.exe はもう使わないので適当にリネームし、作成したバッチファイルを起動。一瞬コマンドプロンプトが出て消え、R のコンソールが現れます。



↓ 最初は Rconsole がないので、適宜設定し HOME フォルダに保存します。ここではウィンドウを一つにし、フォントを Consolas に変更。




設定画面で OK を押すと予想外に ↓ 何か怒られる感じですが、要するに Rconsole が変更されていれば次回起動時に反映するという意味。


↓ 保存した Rconsole はテキストファイルで、GUI のダイアログを使わなくとも手動で変更できます。



↓ 再度バッチファイルを実行すると、設定どおりに R が起動しました。getwd() でカレントフォルダを確認でき、環境変数 HOME で指定したバスと同じ。相対パスで指定したので、ドライブレターが変わっても自動的に追従します。以上のフォルダ一式を持ち運べば、常に同じ設定・パッケージ構成で R を使えます。



なお R 起動中は、一時フォルダがユーザ環境変数 TMP のパス(通常はシステムドライブ内)に作られます。それが嫌なら、起動用バッチファイルに TMP も追加して対処可能。例えば ↓ のようにすると、起動中は Rtmp**** というフォルダができ(二枚目の画像)、終了時に消えます。



↓ ただし R のヘルプは、管理者権限のないユーザ(ゲスト、標準ユーザ)では実行できませんでした。内部でウェブサーバを起動して HTML を表示するはずのところ、管理者でないと駄目なようです。自分の PC 特有の現象かもしれませんが、http://stat.ethz.ch/R-manual/R-devel/library/ で概ね同じものを見られるので(例えば base パッケージ)良しとします。


明日は RpostgreSQL などパッケージを追加し、ポータブル版 PostgreSQL に接続してデータを読み込む環境を整える予定です。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。