java - 使用 JRI 从 Java 调用 R,如何转换返回值

标签 java r jri rjava

我正在使用 JRI 从 Java 执行一些 R 命令。我想在 Java 中使用 R 的结果进行进一步计算,但我不知道如何转换返回的对象。

Java 调用代码:

REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println( x.asVector().elementAt(0));
<小时/>

R 代码的最后一行:

eq_all[length(eq_all)-1]

--

Java 控制台中的输出:

[VECTOR ([REAL* (3.050462038715372)], [BOOLi* ])]
[REAL* (3.050462038715372)]
<小时/>

“3.050462038715372”是正确的值,但如何在 Java 中访问它?

最诚挚的问候, 以马内利

PS。没有答案的相关问题: Converting REXP object to a double array (Java/R)

最佳答案

我相信asDouble()asDoubleArray()是您所需要的。

更新:所以在你的代码示例中,它应该是:

REXP x;
System.out.println(x = rengine.eval("source(\"/..../TS.R\")"));
System.out.println(x.asVector().elementAt(0).asDouble());
PS。提到的问题实际上已经有了您需要的答案 - Java 数组中的 toString() 实现存在问题。

关于java - 使用 JRI 从 Java 调用 R,如何转换返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8029601/

相关文章:

r - 使用 ggplot2 仅将一个轴转换为 log10 刻度

java - 如何使用JRI绘制SVM模型?

java - 从 SOAP 迁移到 REST (Java)

java - Hibernate 急切地加载惰性引用

java - 正确的 Info.plist 设置以在特定 JVM 中启动 Java 应用程序

java - 评估 R 中从 Java 调用的表达式。内存不足错误 : Java Heap

java - 使用 Apache POI 将数据写入 xlsx 文件时遇到问题 - Excel 之后会损坏

R:稀疏矩阵转换

r - 没有消息的 R gstat 中的空间插值