このページでは、Ruby (http://www.ruby-lang.org/ ) から R を利用するためのリソースを紹介します。
日本で博士研究員をしていた Alex さんが RSRuby を開発しています。
以下のようなことができるものがリリースされています。(なかお)
require 'rsruby/rsruby' r = RSRuby.new r.dnorm(10, 0, 1) ary = r.rnorm(100) ary.class #=> Array r.sample(ary, 10).size #=> 10 r.seq(1, 10, 2) #=> [1, 3, 5, 7, 9] r.sum(r.seq(1, 10, 2)) #=> 25 r.example("plot") IO.popen("open Rplots.ps") require 'pp' t_test = r.call_R("t.test", r.rnorm(10), r.rnorm(10)) pp t_test # 0.2 で R の List が Ruby の Hash になるようになりました。 # {"p.value"=>0.462472878695523, # "null.value"=>0.0, # "data.name"=> # ["c(1.01068740782645, 0.865236173115251, 0.93167879993857, # 1.47581317399776, and c(-1.10211243233737, 0.294063804878213, # 0.00141122434656126, ", "-0.515217879322734, 0.134116527467575, # 0.919228278924198, -0.510807008081616, and -0.094686119822364, # 0.267393824116473, -1.08707057903261, 0.483878745814987, ", # "0.0988882035656655, -1.69156211087167) and 0.722160284065746, # 0.596582208806619, -0.117070928181702)"], # "method"=>"Welch Two Sample t-test", # "conf.int"=>[-0.500949894573842, 1.05165220135482], # "alternative"=>"two.sided", # "estimate"=>[0.271806156655945, -0.00354499673454438], # "parameter"=>15.6594946878024, # "statistic"=>0.753253690827231}
Alex さんによる[ruby-talk:186592]からはじまるスレッドの[ruby-talk:187761]で RSRuby の開発版を公開しました。
Ruby-RMathlib ( http://raa.ruby-lang.org/project/ruby-rmathlib )
require 'rmath' Rmath.dnorm(10, 0, 1) # dnorm(10, 0, 1) Rmath.dnorm(10, 0, 1, false) # dnorm(10, 0, 1, F) Rmath.pnorm([0.1,0.2,0.3], 0, 1) # pnorm(c(0.1,0.2,0.3), 0, 1) Rmath.pnorm([0.1,0.2,0.3], 0, 1) # pnorm(c(0.1,0.2,0.3), 0, 1) Rmath.qnorm(0.001, 0, 1) # qnorm(0.001, 0, 1) Rmath.qnorm([0.1,0.2,0.3], 0, 1) # qnorm(c(0.1,0.2,0.3), 0, 1) Rmath.rnorm(10, 0, 1) # rnorm(10, 0, 1)