我正在使用 JRI 并从 Java 调用 R 脚本。R 脚本返回一个整数。以下是我如何调用 R 脚本 -
REXP result = rengine.eval("source(\"" + [script name with path] + "\")");
REXP retVal = rengine.eval(getReturnVariable());
以下是 R 脚本中的相关代码 -
retVal<-sum(num1, num2)
return(as.integer(retVal))
调用 Java 代码应该能够调用任何 R 脚本。该脚本可能会返回各种数据类型,因此我需要查看返回类型以提取结果。
在调用 Java 程序中,当我检查“retVal”时,我看到有以下 2 个属性 -
- rtype - 设置为 13 (INTSXP)
- Xt - 由 gettype() 返回 - 设置为 32 (XT_ARRAY_INT)
我的问题是 - 调用程序应该查看上述哪种类型?
此外,任何指向 R 和 Java 数据类型之间任何映射的指针都会有所帮助。
我还查看了以下帖子,但无法理解上述查询的实际解决方案 - call-r-from-java-using-jri-how-to-cast-return-value
问候,〜米林德