はじめてのR(2)

ということで、無事Rを入れられたので、次はRubyでRを使ってみる。

調べてみると、いくつか方法があるみたいで、

  • RSRuby
  • RinRuby
  • Rserve

が主流のよう。いろいろググってみた感じで、今回はRSRubyにすることにしました。

インストール

ちなみに環境は以下。

$ sw_vers 
ProductName:	Mac OS X
ProductVersion:	10.10.4
BuildVersion:	14E46
$ ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
$ r -q
> version
               _                           
platform       x86_64-apple-darwin14.3.0   
arch           x86_64                      
os             darwin14.3.0                
system         x86_64, darwin14.3.0        
status                                     
major          3                           
minor          2.1                         
year           2015                        
month          06                          
day            18                          
svn rev        68531                       
language       R                           
version.string R version 3.2.1 (2015-06-18)
nickname       World-Famous Astronaut     

ということで、インストール。
といきたいところだったけど、どうやらincludeパスとlibパスをちゃんと設定してあげないといけないらしく、しかも、だいたい/Library/Frameworks/R.framework/だって書いてあるけど、そこにはなにもなく、、、
(/Library/Frameworks以下って自分でつくんのかな?素人すぎてわかりません・・・てか、この辺の使い方てきとーすぎて間違ってる気がしてならない・・・笑)
まぁとりあえずパスをちゃんと指定すればいいんだろ〜ってことで、R先生がどこにいるか調べる。

$ brew info R
homebrew/science/R: stable 3.2.1 (bottled), HEAD
http://www.r-project.org/
/usr/local/Cellar/R/3.2.1_1 (2172 files, 59M)

/usr/local/Cellar/Rにいるってよ。って、brewがそういう設定だから当たり前か。
で、Rディレクトリ以下を見てみると、R.frameworkがいたので、これ指定してあげれば動くでしょ、ってことで以下インストール。

$ sudo gem install rsruby -- --with-R-include=/usr/local/Cellar/r/3.2.1_1/R.framework/Headers --with-R-lib=/usr/local/Cellar/r/3.2.1_1/R.framework/Libraries

で、なにやらR_HOMEをちゃんと指定してあげてねってことなので、.bash_profileもお手入れ。

$ vi ~/.bash_profile
# ↓を追記
export R_HOME=/usr/local/Cellar/r/3.2.1_1/R.framework/Resources

$ source ~/.bash_profile

ようやくインストール完了。

とりあえず使ってみる

サンプルは以下。

require 'rubygems'
require 'rsruby'

r = RSRuby::instance

r.eval_R(<<-RCOMMAND)
png("./foo.png")

x<-rnorm(10)
y<-rnorm(10)
plot(x,y)

dev.off()
RCOMMAND

すげー簡単。
r.eval_R以下でRのコマンド発行するらしい。
今回は、plotした結果をpngに入れる感じで。
実行してみると、pngができてるっぽい。

$ open foo.png

f:id:funizou:20150802111723p:plain:w400
無事動いてることを確認。
よしよし。