2016年1月6日水曜日

rJava : プログラミング(2)

rJavaプログラミングの続き(http://mizunolab.sist.ac.jp/2016/01/rjava-1.html)です。
参考:http://se.cite.ehime-u.ac.jp/wiki/index.php?R_rJava

Rで計算させたものをJavaでどう利用するかということですが、参考ページの下記のソースを試してみます。

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

public class JRITest02 {

    public static void main(String[] args)
    {
        Rengine re = new Rengine( new String[]{"--no-save"}, false, null );
       
        REXP x = re.eval("sample(10,5)");
        System.out.println(x);
        int[] ary = x.asIntArray();
        for (int i = 0; i < ary.length; i++) {
            System.out.println(ary[i]);
        }
        re.end();
    }
}



「Rengine インスタンスに対して eval メソッドを呼び出すと REXP クラスのインスタンスが戻り値として得られる.」とあります。
REXP x = re.eval("sample(10,5)"); 
REXPクラスの説明が、http://rforge.net/org/doc/org/rosuda/JRclient/REXP.html
にあります。今回はint[] ary = x.asIntArray();とasIntArray()関数を使っていますが、他にも色々あるようです。

何となくわかったので、次はRの基本コマンドをevalで発行して、結果を取得してみたい。

0 件のコメント:

コメントを投稿