こんにちは。
masudaです。
今回はRubyでRを使うというのをやってみようかなと思います。
RはWikipediaのよると「オープンソースでフリーソフトウェアの統計解析向けプログラミング言語、及びその開発実行環境である。」そうです。
RubyからRを呼び出すためのRSRubyというgemがあります。
これがあるとお手軽にRubyからRの機能を呼び出すことが可能です。
まずはR本体をインストールします。
次にRubyGemでRSRubyをインストールします。
オプションでRの場所を指定してあげます。
Macだとこのようになります。
sudo gem install rsruby -- --with-R-dir=/Library/Frameworks/R.framework/Resources
使い方
require 'rubygems' require 'rsruby' r = RSRuby::instance r.eval_R(<<-RCOMMAND) # 実行したいコマンド RCOMMANDS
たったこれだけです。
x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] r.eval_R(<<-RCOMMANDS) pdf("~/foo.pdf") x <- matrix(c(#{x.map do |a| '"' + a + '"' end.join(',')}), 1, #{x.size}) y <- matrix(c(#{y.map do |b| '"' + b + '"' end.join(',')}), 1, #{y.size}) plot(x, y, xlim = c(1, 10), ylim = c(1, 10)) dev.off() RCOMMANDS
上記を実行することで、PDFでグラフが作成されます。
PDFだと何かと便利なので、PDFにしています。
RubyのArrayからRのArrayには自分はいつも上記のような書き方をしています。
もっと良い書き方があるのかもしれません。
私がRをきちんと学んでいないからR単体だけでできるのかもしれませんが、Rubyの強力な文字列処理とRの強力な統計処理、数値演算を手軽に融合できることが気に入っています。
Rを使っていらっしゃる方は是非一度お試しください。