JavaからRを呼び出す 〜 RServer、REngineの使用
◎前提
Rがインストールされていること。
◎手順
基本的には、ここに書かれていることとホボ同じ。
ただ、ライブラリが更新されていることと、ソースをインポートしている所をjar参照にした点がことなる。
1.Rserve のインストール
下記コマンドをRで実行。
install.packages('Rserve',,'http://www.rforge.net/')
2.RServeのjarをダウンロード
RServeのダウンロードページから、
RServeEngine.jarとREngine.jarをダウンロードする。
3.サンプルのJavaプロジェクトを作成してビルドパスを通す
Javaのサンプルはここに記載のあるとおり。
記載のサンプルでは動作しなかったため、少し修正した。おそらく、バージョンアップによりREngineの仕様が変わったためであろう。
public class RJava { public static void main(String[] args) throws RserveException, REXPMismatchException { RConnection c = null; c = new RConnection(); double d[] = c.eval("rnorm(10)").asDoubles(); for (int i = 0; i < 10; i++) { System.out.println(d[i]); } }
4.Rserver の起動
>library(Rserve) >Rserve()
5.Javaプログラムを実行する
Javaでの実行結果。
Rでの実行結果。
あれ、一致しない。。。あとで考えておく。。。