パッケージ: rrx110.zip
当パッケージは rrx ver 1.1 です。
従来の ver 1.05 からいろいろと変更しました。
一番大きな変更は rrxutil.rb を排気したことです。したがって、旧版の解説やサンプルに出てくる「require “rrxutil”」というのはエラーになります。
統計解析ソフトRは、高機能で統計解析のためのいろいろな仕組みを装備しています。
また、Rにはプログラミング言語として様々な仕組みがあり、それに熟達している人にとっては、Rだけで処理できることが大半だろうと思います。
ただ、私は ruby を愛用しており、それと連携させてRを使いたいと考えました。
rubyを経由することで、例えば、RとExcelの間のデータのやりとりが容易になります。sqliteなど様々なデータベースに蓄積されたデータをRで解析するのも容易になります。
rubyからRを利用する強力なライブラリとして rsruby がありますが、もう少し手軽に使えるものとして rrx を作ったのでアップしました。
1つのcsvファイルから複数の行列を切り取るためのメソッド(矩形選択の自動化)なども用意し、R活用の時の周辺的な便利さを追求したつもりです。
MS-Windows, linuxなどで利用できます。
ただし、クリップボードを扱うメソッドは MS-Windows専用です。
ruby 1.9.3 | 2.0.0 | 2.1.3
R 2.15.3 | 3.1.1
で動作確認しました。
圧縮ファイルを解凍すると、libというディレクトリの下に rrx.rb などの関連ファイルがあります。
そこに setup.rb というファイルがあるので、インストールしたい時は次のように ruby を実行します。
ruby setup.rb [enter]
アンインストールする場合は次のとおり。
ruby unset.rb [enter]
基本的な解説ドキュメントをWeb上で閲覧したい方は、 rubyから統計解析ソフトRを使う からどうぞ。
rrxの各種メソッドの仕様は rrxで定義されている各種メソッド をご覧ください。
旧版の解説やサンプルは
旧版 rrx のページ
から辿ることができますが、「require “rrxutil”」がエラーになる点にご注意ください。
「require “rrx”」に修正すれば大丈夫だと思います。
rrx ver 1.05 → 1.1 の変更点を記します。
これまでは、utf-8 | euc-jp用を rrx.rb とし、MS-Windows用の rrxwin.rb は別扱いにして、クリップボードを扱うメソッドを組み入れていた。
こうした区別をやめて、単純に文字エンコードの違いによって rrxwin.rb, rrxutf.rb, rrxeuc.rb を設けた。これら3つは、エンコードが違うだけで中身は同じである。
いずれにもクリップボードを扱うメソッドが含まれているが、ただし、MS-Windows環境以外ではそれを利用できない。
rrx.rb は、rubyの実行環境をチェックして、rrx*.rb(rrxwin.rb, rrxutf.rb, rrxeuc.rb)の3つのうちの1つをrequireする。
自作スクリプトの最初の方に「require “rrx”」と書いておくと、次のルールに従って rrx*.rb のrequireを行う。
markdown記法に関連するメソッドなどを rrxutil.rb で定義していたが、それらを rrx*.rb に盛り込み、rrxutil.rb を廃止した。
これまでのサンプルスクリプトで「require “rrxutil”」と書いてあるものは、エラーになってしまうので注意されたい。
標準添付ライブラリとしては tempfile, csv, nkf, open-uri, time を読み込む。また、MS-Windows環境下では win32ole を読み込む。
それ以外に、kramdown, nokogiri, terminal-table がインストールされていれば、それらも読み込む。これらは gem でインストール可能。
Excelファイルを扱うための spreadsheet | roo | exlap は読み込まないので、必要に応じてrequireされたい。
なお、erbは require しないので、必要な時は自作スクリプトで require すること。
次の2つの環境変数を参照するようにした。
MS-Windows環境の場合に限るが、Rcmd.exeのフルパスが環境変数RCMD_PATHにセットされていると、そのRcmd.exeを利用する。
RCMD_PATHが設定されていなければ、Rcmd.exeの所在を独自に検索する。
環境変数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を同じように参照する。
どちらの環境変数も設定されていなければ、暗黙の挿入は行われない。
markdownの原稿等を扱うため、kramdown, pandoc に関連したメソッドをいくつか追加した。
それらの詳細は rrx_methods を参照していただくとして、メソッドの名前と機能だけ下に列記する。
rubyの配列をアスキー文字の罫線付きで表に整形する。rubyライブラリの terminal-table を利用。
アスキー文字罫線の表は、pandocというコマンドにおいて「グリッドテーブル」として処理される。この場合、1つのセルの中に箇条書きやコードブロックなどを盛り込むことができる。この text_table() は、pandocとの組合せを意識して設けた。
サンプル a_tbl.rb を参照のこと。
rubyのTimeオブジェクトを文字列に変換
strの文字コードを当スクリプト(rrx*.rb)のものと同じになるよう変換する。rrxutf.rbがrequireされていれば utf-8 に変換する。
rubyのString, ArrayをRのcharacter, vector, matrixの記述形式に変換する。rubyのArrayが1次元配列ならvector、2次元配列ならmatrixに変換。3次元以上の配列には対応しない。
rubyの文字列を数値に変換する。数値と解釈できないものは変換しない。
Excelファイルの1つのワークシートをcsvまたはタブ区切りの形式でテンポラリファイルに書き出す。
htmlファイルの1つのテーブルをcsvまたはタブ区切りの形式でテンポラリファイルに書き出す。
Web上のファイルをローカルファイルとして書き出す。
markdownの原稿をkramdownによってhtmlに変換。
markdownの原稿をkramdownによってtexに変換。
kramdownの目次(toc)の文字列を生成する。
markdownの原稿などをpandocによってhtmlなどに変換。
markdownの原稿をpandocによってhtmlに変換。
markdownの原稿をpandocによってtexに変換。
markdownの原稿をpandocによってdocx(MS-Word文書)に変換。
xxxなどの3文字重ねパターンをERB用に変換
〜 以上 〜