rubyから統計解析ソフトRを使うためのrrx ver 1.1

最終更新日: 2014/11/09

パッケージ: rrx110.zip

当パッケージは rrx ver 1.1 です。

従来の ver 1.05 からいろいろと変更しました。
一番大きな変更は rrxutil.rb を排気したことです。したがって、旧版の解説やサンプルに出てくる「require “rrxutil”」というのはエラーになります。


rrxを作った目的

 統計解析ソフトRは、高機能で統計解析のためのいろいろな仕組みを装備しています。

 また、Rにはプログラミング言語として様々な仕組みがあり、それに熟達している人にとっては、Rだけで処理できることが大半だろうと思います。

 ただ、私は ruby を愛用しており、それと連携させてRを使いたいと考えました。

 rubyを経由することで、例えば、RとExcelの間のデータのやりとりが容易になります。sqliteなど様々なデータベースに蓄積されたデータをRで解析するのも容易になります。

 rubyからRを利用する強力なライブラリとして rsruby がありますが、もう少し手軽に使えるものとして rrx を作ったのでアップしました。

 1つのcsvファイルから複数の行列を切り取るためのメソッド(矩形選択の自動化)なども用意し、R活用の時の周辺的な便利さを追求したつもりです。

rrxの使用環境

 MS-Windows, linuxなどで利用できます。
 ただし、クリップボードを扱うメソッドは MS-Windows専用です。

 ruby 1.9.3 | 2.0.0 | 2.1.3
 R 2.15.3 | 3.1.1
で動作確認しました。

rrxのインストールとアンインストール

 圧縮ファイルを解凍すると、libというディレクトリの下に rrx.rb などの関連ファイルがあります。

 そこに setup.rb というファイルがあるので、インストールしたい時は次のように ruby を実行します。

  ruby setup.rb [enter]

 アンインストールする場合は次のとおり。

  ruby unset.rb [enter]

rrxの解説ドキュメント

 基本的な解説ドキュメントをWeb上で閲覧したい方は、 rubyから統計解析ソフトRを使う からどうぞ。

 rrxの各種メソッドの仕様は rrxで定義されている各種メソッド をご覧ください。

 旧版の解説やサンプルは 旧版 rrx のページ から辿ることができますが、「require “rrxutil”」がエラーになる点にご注意ください。
「require “rrx”」に修正すれば大丈夫だと思います。


rrx ver 1.1 について

 rrx ver 1.05 → 1.1 の変更点を記します。

(1) rrxのrequireに関連する事柄

○ 文字エンコード別の rrxwin.rb, rrxutf.rb, rrxeuc.rb

 これまでは、utf-8 | euc-jp用を rrx.rb とし、MS-Windows用の rrxwin.rb は別扱いにして、クリップボードを扱うメソッドを組み入れていた。

 こうした区別をやめて、単純に文字エンコードの違いによって rrxwin.rb, rrxutf.rb, rrxeuc.rb を設けた。これら3つは、エンコードが違うだけで中身は同じである。

 いずれにもクリップボードを扱うメソッドが含まれているが、ただし、MS-Windows環境以外ではそれを利用できない。

○ rrx*.rbを読み込むための rrx.rb

 rrx.rb は、rubyの実行環境をチェックして、rrx*.rb(rrxwin.rb, rrxutf.rb, rrxeuc.rb)の3つのうちの1つをrequireする。

 自作スクリプトの最初の方に「require “rrx”」と書いておくと、次のルールに従って rrx*.rb のrequireを行う。

○ rrxutil.rb を廃止した。

 markdown記法に関連するメソッドなどを rrxutil.rb で定義していたが、それらを rrx*.rb に盛り込み、rrxutil.rb を廃止した。

 これまでのサンプルスクリプトで「require “rrxutil”」と書いてあるものは、エラーになってしまうので注意されたい。

○ rrx*.rb の中で読み込むライブラリ

 標準添付ライブラリとしては tempfile, csv, nkf, open-uri, time を読み込む。また、MS-Windows環境下では win32ole を読み込む。

 それ以外に、kramdown, nokogiri, terminal-table がインストールされていれば、それらも読み込む。これらは gem でインストール可能。

 Excelファイルを扱うための spreadsheet | roo | exlap は読み込まないので、必要に応じてrequireされたい。

 なお、erbは require しないので、必要な時は自作スクリプトで require すること。

(2) 環境変数 RCMD_PATH, RRX_SOURCE の参照

 次の2つの環境変数を参照するようにした。

○ RCMD_PATH

 MS-Windows環境の場合に限るが、Rcmd.exeのフルパスが環境変数RCMD_PATHにセットされていると、そのRcmd.exeを利用する。

 RCMD_PATHが設定されていなければ、Rcmd.exeの所在を独自に検索する。

○ RRX_SOURCE

 環境変数RRX_SOURCEに、ディレクトリ名が設定されていると、そのディレクトリの下にある *.R または *.r を暗黙のうちに取り込む。

 例えば、RRX_SOURCEの値が「C:/work」である場合、このworkディレクトリの下に test01.R, test02.R という2つのファイルがあるとすれば、

 Rプログラムの最初の方に、暗黙のうちに次の2行を挿入する。

  source("C:/work/test01.R")
  source("C:/work/test02.R")

 環境変数RRX_SOURCEが設定されていない場合は、次に環境変数RPT_WITHを同じように参照する。

 どちらの環境変数も設定されていなければ、暗黙の挿入は行われない。

(3) 追加または修正したメソッド

 markdownの原稿等を扱うため、kramdown, pandoc に関連したメソッドをいくつか追加した。

 それらの詳細は rrx_methods を参照していただくとして、メソッドの名前と機能だけ下に列記する。

○ text_table(ary, header, sep)

 rubyの配列をアスキー文字の罫線付きで表に整形する。rubyライブラリの terminal-table を利用。

 アスキー文字罫線の表は、pandocというコマンドにおいて「グリッドテーブル」として処理される。この場合、1つのセルの中に箇条書きやコードブロックなどを盛り込むことができる。この text_table() は、pandocとの組合せを意識して設けた。
 サンプル a_tbl.rb を参照のこと。

○ time2str(x)

 rubyのTimeオブジェクトを文字列に変換

○ to_enc(str)

 strの文字コードを当スクリプト(rrx*.rb)のものと同じになるよう変換する。rrxutf.rbがrequireされていれば utf-8 に変換する。

○ to_rex(x)

 rubyのString, ArrayをRのcharacter, vector, matrixの記述形式に変換する。rubyのArrayが1次元配列ならvector、2次元配列ならmatrixに変換。3次元以上の配列には対応しない。

○ to_num(x)

 rubyの文字列を数値に変換する。数値と解釈できないものは変換しない。

○ xls2tmp(target, sn, ftype)

 Excelファイルの1つのワークシートをcsvまたはタブ区切りの形式でテンポラリファイルに書き出す。

○ htm2tmp(target, reg, sn, ftype)

 htmlファイルの1つのテーブルをcsvまたはタブ区切りの形式でテンポラリファイルに書き出す。

○ web2file(url)

 Web上のファイルをローカルファイルとして書き出す。

○ kramdown_html(str, *opt)

 markdownの原稿をkramdownによってhtmlに変換。

○ kramdown_tex(str, *opt)

 markdownの原稿をkramdownによってtexに変換。

○ kramdown_contents(str)

 kramdownの目次(toc)の文字列を生成する。

○ pandoc_convert(str, *opt_ary)

 markdownの原稿などをpandocによってhtmlなどに変換。

○ pandoc_html(str, *opt_ary)

 markdownの原稿をpandocによってhtmlに変換。

○ pandoc_tex(str, *opt_ary)

 markdownの原稿をpandocによってtexに変換。

○ pandoc_docx(str, *opt_ary)

 markdownの原稿をpandocによってdocx(MS-Word文書)に変換。

○ erb_three(str)

 xxxなどの3文字重ねパターンをERB用に変換

〜 以上 〜


トップページへ