[サンプルプログラム : Rを使いJava側で出力]
サンプルはhttp://se.cite.ehime-u.ac.jp/wiki/index.php?R_rJavaを参考にしています。
[JRITest01.java]
import org.rosuda.JRI.Rengine;
public class JRITest01 {
public static void main(String[] args)
{
Rengine re = new Rengine( new String[]{"--no-save"}, false, null );
System.out.println( re.eval("sample(10,5)") );
re.end();
}
}
まずRengine re = new Rengine( new String[]{"--no-save"}, false, null );でRengineクラスを見てみるとコンストラクタに
Rengine(java.lang.String[] args, boolean runMainLoop, RMainLoopCallbacks initialCallbacks)
create and start a new instance of R.
とある。よくわからないが、おまじないとしておく。
次に、re.eval("sample(10,5)")のところで
evalは
eval(java.lang.String s)
Parses and evaluates an R expression and returns the result.
とあるのでevalは引数の文字列を評価してR側に渡す役割みたい。
sampleは
sample(x, size, replace = FALSE, prob = NULL)のように乱数を発生させる。
https://stat.ethz.ch/R-manual/R-devel/library/base/html/sample.html
ということで
re.eval("sample(10,5)")
はsample(10,5)というコマンド文字列をevalがRに渡し実行している。
コンパイル実行してみると、下記になる。
ということでrengineインスタンス生成とevalの使い方がわかりました。
0 件のコメント:
コメントを投稿