R側の準備
Rserveパッケージを予めインストールしておきます。
install.packages("Rserve", dependencies = T)
Ruby側の準備
rserveクライアントを予めインストールしておきます。
gem install rserve-client
プログラム中に
program1.rb
require "rserve"
class Fixnum < Integer; end
autoload(:Matrix, "matrix")
2行目はFixnumが廃止されたのでその対策。
3行目もあった方が良さそうです。
Rserveの起動
rs=Rserve::Connection.new()
内部では R CMD Rserve で起動していますが、Rserveの位置が標準と異なっている場合はエラーになります。もしエラーが出るようでしたら
rs=Rserve::Connection.new(cmd_init: "Rscript --vanilla -e 'library(Rserve);Rserve()'")
を試してみてください。(macOSでRのサイトからダウンロードしたインストーラの場合はこちらで)
Rserveの終了
rs.shutdown