RSRubyの導入
Linux & RubyからRSRubyを使ってRのモジュールを使用、例としてFisher検定を行いたい。
RSRubyの導入方法。
RubyとRはソースコンパイルで$HOME/local以下にインストール
Ubuntuデスクトップ(32bit)の場合。
$ wget http://cran.r-project.org/src/base/R-2/R-2.8.1.tar.gz $ tar xvf R-2.8.1.tar.gz $ cd R-2.8.1.tar.gz $ ./configure --prefix=$HOME/local --enable-R-shlib $ make $ make install
$ sudo apt-get install gcc42-fortran $ sudo apt-get install libncl-dev???
Rのコンパイルとインストールが終われば
$ gem install rsruby -- --with-R-dir=$HOME/local/lib/R
これで導入終わり。(2011/1/16 現在)
CentOSサーバ(64bit)の場合。若干、設定を変える。
Xサーバが走っていないサーバマシンに導入するときはグラフ描画関連を省いたので
"--with-x=no" と "--readline=no" を指定した。
$ ./configure --prefix=$HOME/local --enable-R-shlib --with-x=no --readline=no
CentOS 64bitの場合は、$HOME/local/lib64以下にRのライブラリが配置されるみたい。
$ gem install rsruby -- --with-R-dir=$HOME/local/lib64/R
次にFisher検定を手早く試したい。以下のコードはRubyForgeのフォーラムで見つけたもの。
しかしトピック内で言われているようなSIGSEGVは発生せず正常に動作した、修正されたか?
require 'rsruby' r = RSRuby.instance r.matrix.autoconvert(RSRuby::NO_CONVERSION) m = r.matrix([1,2,3,4],:nrow=>2,:ncol=>2) puts r.is_matrix(m) r.fisher_test(m)
Rではfisher.testだがRSRubyではfisher_testになるらしい。
なぜか導入方法以外で豊富な日本語tipsが見つからない。
Rなら比較実験のベースラインなんかでよく使われるランダムグラフやコンフィグモデルなども簡単に書ける。