Java Double数组,其中R值为null

时间:2015-03-16 16:07:53

标签: java r nuiton

我正在使用nuiton库进行Java到R连接。我正在尝试将一个Double []数组分配给一个R变量,但它只允许使用原始双精度数。这是因为库还是有另一种方法我应该将空值传递给R?

1 个答案:

答案 0 :(得分:3)

nuiton-j2r用于将String指令发送到R(在本地实例或R服务器上)。因此,为了将一个Double []数组赋值给一个R变量,我构建一个执行赋值的String(myArray是我的REngine的双数组结束引擎):

StringBuilder myBuilder = new StringBuilder();

myBuilder.append("myVariable<-c(");

for (Double dble:myArray) {
    myBuilder.append(dble.toString());
    myBuilder.append(",");
}

myBuilder.deleteCharAt(myBuilder.length()-1);

myBuilder.append(")");

engine.eval(myBuilder.toString());

现在在你的R会话中你得到了你的双阵列。

为了让它在Java方面得到回复,你可以做到:

Double[] arrayCopy = (Double[])engine.eval(myVariable);

(注意:我没有尝试这个,只是通过记忆,可能需要一些调整)