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]);
		}

	}

ダウンロードしたjarに、ビルドパスを通す。

4.Rserver の起動

>library(Rserve)
>Rserve() 

5.Javaプログラムを実行する
Javaでの実行結果。

Rでの実行結果。

あれ、一致しない。。。あとで考えておく。。。