java r interfaceの有効桁数
【質問】
java r interface(JRI)を使用して、Rの結果を取得しています。
JRIで返す桁数とRのGUIで返す桁数に差異があり、どこでJRIの桁数を指定したら良いのか分かりません。
どなたかご教示お願いします。
【事象】
RのGUI
1.getOption(digits)を実行して、デフォルトの7であることを確認。
2.「t.test」コマンドを実行して、tが-1.234567(数字は仮)でなることを確認。
JRI
1.evalでRのGUI1.と同じコマンドを実行して、デフォルトの7であることを確認。
2.evalでRのGUI2.と同じコマンドを実行すると、tが-1.23456789012345(数字は仮)になってしまう。
✳︎evalでOption(digits=1)を実行しても、上記2.と同じ結果になる。
【その他情報】
JRI-0.9.7.jar
spring boot 1.5.19
java1.8
【ソースコード】
下記イメージになります。
必要箇所だけ抜粋しています。
~
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
~
public static void main(String[] args) {
Rengine engine = new Rengine(new String[] { "--no-save" }, false, null);
// dataframe作成
engine.eval("dataframe <- data.frame(\"group1\"=c(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,136,127,128,160,158,158,159,159,158,157,156,155))");
// ここでは7が返ってくる。
engine.eval("getOption(\"digits\")");
engine.eval("options(digits=5)");
// ここでは5が返ってくる。
engine.eval("getOption(\"digits\")");
// ★取得結果の桁数がRGUIを実行した際と異なる。
REXP result = engine.eval("t.test(dataframe$group1, mu=150, alternative=\"less\", data=dataframe)");
}