У меня есть следующий код Java, который использует Rcaller.
RCaller caller = new RCaller();
RCode code = new RCode();
caller.setRscriptExecutable("/usr/bin/Rscript");
code.addRCode("install.packages(\"bbmle\")");
caller.redirectROutputToConsole();
caller.runOnly();
По сути, я пытаюсь запустить код Java, который устанавливает пакет R (потому что позже я буду запускать код R в Java, для которого требуется этот пакет).
Когда я запускаю этот код, я получаю следующий вывод в 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: