[英]Call R from Java using JRI, how to cast return value
我正在使用JRI從Java執行一些R命令。我想將Java中R的結果用於進一步的計算,但是我不知道如何轉換返回的對象。
REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println( x.asVector().elementAt(0));
eq_all[length(eq_all)-1]
-
[VECTOR ([REAL* (3.050462038715372)], [BOOLi* ])]
[REAL* (3.050462038715372)]
“ 3.050462038715372”是正確的值,但是如何在Java中訪問它?
最好的問候,伊曼紐爾
PS。 沒有答案的相關問題: 將REXP對象轉換為雙精度數組(Java / R)
elementAt()無法正常工作,您可以使用at()。
REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println(x.asVector().at(0).asDouble());
我相信asDouble()
和asDoubleArray()
是您所需要的。
更新:因此在您的代碼示例中,它應該是:
REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println(x.asVector().elementAt(0).asDouble());
PS。 所提到的問題實際上提供了您需要的答案-Java數組中toString()
實現存在問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.