我有以下使用Rcaller的 Java 代码。
RCaller caller = new RCaller();
RCode code = new RCode();
caller.setRscriptExecutable("/usr/bin/Rscript");
code.addRCode("install.packages(\"bbmle\")");
caller.redirectROutputToConsole();
caller.runOnly();
本质上,我正在尝试运行安装 R 包的 Java 代码(因为稍后我将在需要此包的 Java 中运行 R 代码)。
当我运行此代码时,我在 Java 中得到以下输出
Error:Loading required package: Runiversal
但是,我的Runiversal
Mac 上确实有这个包。任何想法这意味着什么,为什么我实际上没有看到R
该方法的任何输出install.packages
,这通常很冗长?
更新:我应该注意,即使是如下简单的代码也会导致相同的错误:
code.addRCode("x = c(1,2,3)");
code.addRCode("y = c(2,3,5");
code.addRCode("x+y");
caller.redirectROutputToConsole();
caller.runOnly();
更新:我还应该提到以下效果很好:
StringBuffer allCode = readFile("temp.R");
code.setCode(allCode);
double[] xvector = new double[]{1,3,5,3,2,4,5,6,7,8,9,21,22,25,27,25,34,39,31};
double[] yvector = new double[]{6,7,5,6,5,6,6,7,6,8,9,21,20,19,23,24,29,38,30};
code.addDoubleArray("X",xvector);
code.addDoubleArray("Y",yvector);
code.addRCode("fun(X,Y)");
温度R:
fun = function(x,y) {
return(lm(y~x))
}
Java 输出:
Output:
Output:Call:
Output:lm(formula = y ~ x)
Output:
Output:Coefficients:
Output:(Intercept) x
Output: 2.445 0.825
Output: