【发布时间】:2015-02-20 02:02:47
【问题描述】:
我已安装 JRI,以便在 Windows 7 上使用 32 位 R 3.0.2 和 Java jdk1.7.0_45 与 NetBeans 7.4 一起运行。
我正在使用以下 Java 函数。
import org.rosuda.JRI.Rengine;
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.RList;
void testJRI(){
// Start JRI engine.
String[] Rargs = {"--vanilla"};
Rengine re = new Rengine(Rargs, false, null);
if (!re.waitForR()) {
System.out.println("Cannot load R");
return null;
}
REXP load=re.eval("source('C:\\\\searchPath\\\\nonparametricAnova.r')");
re.end();
return;
}
第一次调用该函数时,一切正常。但是第二次,变量 load 为 null - 表示失败。
我用下面的简单脚本替换了 nonparametricAnova.r R 函数
simple<-function(){
a=1
a
}
我将其命名为 simple.r 并用
调用 REXP load=re.eval("source('C:\\\\searchPath\\\\simple.r')");
现在,第二次通过,它挂了
Rengine re = new Rengine(Rargs, false, null);
我注意到了
load=re.eval("refClusterMeasurements<-read.csv(\"C:/SearchPath/fileName.csv\", header=TRUE)");
即使“name.csv”是一个最小大小的文件,第二次也会失败。
【问题讨论】:
-
我不知道是什么导致了这个问题,但请注意分离脚本在 R 中没有任何意义。
-
您是否尝试过使用不同的(可能非常简单的)脚本来代替 nonparametricAnova 来查看您是否有同样的问题?
-
@Dason。我试过了,现在它挂在 Rengine re = new Rengine(Rargs, false, null);我已经编辑了我的问题以反映这一点。谢谢,
-
可以添加导入吗?
-
@Yehosaphat。我已经编辑了我的问题以添加导入。谢谢,