我正在使用nuiton库进行Java到R连接。我正在尝试将一个Double []数组分配给一个R变量,但它只允许使用原始双精度数。这是因为库还是有另一种方法我应该将空值传递给R?
答案 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);
(注意:我没有尝试这个,只是通过记忆,可能需要一些调整)