我使用RCaller从java程序调用R我试图用RCaller呼叫R的电脑无法访问互联网;现在我有这样的情况:我从Java中编写R代码,并通过使用RCode将此代码添加到R中;生成的代码是这样的:
packageExist<-require(Runiversal)
if(!packageExist){
install.packages("Runiversal", repos=" http://cran.r-project.org")
}
source("/tmp/liveness/helper.R")
source("/tmp/liveness/model-nbd.R")
source("/tmp/liveness/model-pareto-nbd.R")
source("/tmp/liveness/model-bg-nbd.R")
source("/tmp/liveness/model-cbg-cnbd-k.R")
cdData <- read.table("/tmp/liveness/data.csv", head=T)
names(cdData)[2] <- "x";
bgMleFit <- bgEstimateParameters(cdData, list(r=1, alpha=2, a=1, b=2));
summary(bgMleFit);
cdBgParams <- as.list(coef(bgMleFit));
t <- 2;
cdBgCe <- bgConditionalForecast(cdData, cdBgParams, t);
cat(makexml(obj=cdBgCe, name="cdBgCe"), file="/tmp/Routput7266683884330110613")
通过在Java程序中执行此代码,当我试图解析XML文件时出现异常,因为生成的XML文件为空如果我复制生成的代码并将其粘贴到RStudio中,所有的都非常好
我解决它的方法:(我使用的是64位版本的R),所以在代码中我只更改了行:caller.setRscriptExecutable("C:\Program Files/R/R-3.0.1/bin/Rscript");到以下行:caller.setRscriptExecutable("C:\Program Files/R/R-3.0.1/bin/x64/Rscript.exe");
(请注意,我使用RCaller-2.0.7.jar作为源代码)。它附加了
这个库的新版本稍微快一点,不需要R包Runiversal,一些错误已经修复。在这里试用