0

我有以下使用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

但是,我的RuniversalMac 上确实有这个包。任何想法这意味着什么,为什么我实际上没有看到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:
4

2 回答 2

0

R 从库中加载包。如果在 Java 下启动的 R 进程没有搜索到您安装 Runiversal 包的库,则可能会导致您看到错误消息。

那么:安装 Runiversal 包的目录路径(即库)是什么?可能与此相关的是用户安装了 R 包,以及运行 Java 代码的用户。

于 2014-02-02T18:59:26.087 回答
0

2.2 版本的 RCaller 库不需要 R 包 Runiversal。包中实现了 R 到 XML 转换器的紧凑版本。在这里试试

于 2014-04-13T08:56:39.033 回答