題名の通りです。
以前ご紹介したように、RSRubyはRubyでRのスクリプトを実行するためのものです。
RのオブジェクトをRubyのオブジェクトに変換することは簡単です。
というのはeval_Rをした結果がArrayとして扱うのが適当であればArrayに、Hashとして扱うのが適当であれば、Hashに変換してくれます。
問題はRubyのArrayをRの中で使いたいときです。
たとえば
[1, 2, 3, 4, 5]
というArrayをRの行列にしたい場合。
ruby_data = [1, 2, 3, 4, 5] r = RSRuby::instance r.eval_R <<-RCOMMANDS r_data <- matrix(c(#{ruby_data.join(",")}), 1, #{ruby_data.size}) <<-RCOMMANDS
などとしてうまくjoinを使ってやればできます。