繁体   English   中英

从Java运行R脚本

[英]Running an R script from Java

当我尝试在Mac OS上从Java Netbeans运行R脚本时,我遇到了问题。 我真的在互联网上寻找这个问题的答案,但没有任何作用。

我已经使用了Rserve和Runtime.getRuntime()。exec(“Rscript myScript.R”),但它们都不能用于我的程序。

当我使用Rserve时,我在R控制台上运行Rserve(args =“ - no-save”),在Java程序上运行Rconnection.eval(“\\ myscript.R”),当我执行它时,程序继续运行而没有任何响应,没有错误也没有停止。 事实上,当我尝试执行更简单的R脚本时,比如计算平均值或类似的东西,它可以工作,但是当我尝试在xts / zoo时间序列中强制data.frame或者只是为了加载xts / zoo库首先在我的脚本中,程序不会停止运行并且什么也不做。

另一方面,当我尝试执行“Runtime.getRuntime()。exec(”Rscript myScript.R“)”就像出现在其他类似帖子中一样,没有任何反应。 程序看起来执行脚本但它不会给我任何结果,尽管至少停止运行。 也许是因为Mac OS而且我无法向Java表明什么是Rscript或R.app路径,我真的不知道。

非常感谢你,我希望你能帮助我。

哈维。

文件代码是:

public void Rconnection () {

RConnection c=new RConnection();
System.out.println("INFO : Trying to Connect to R");                          
c.parseAndEval("source(\"/scriptname.R\")");
System.out.println("Greeting from R:" + result.asString());
c.close();
}

R脚本是:

EU.df <- read.csv("/myinput.csv",header=T)
EU.xts <- xts(EU.df[,2:5],seq(as.Date("1970-01-02"),len=nrow(EU.df),by="day"))
write.csv(EU.df, file = "/myoutputfile.csv",row.names=FALSE)

也许是因为R库或MAC OS存在一些问题。

你尝试过使用JRI吗? 与RServe不同,这可能会“阻止”并为您提供更好的消息。

例如:

REngine re = new JRIEngine(new String[] { "--no-save" }, new RCallback(), false);
re.parseAndEval("source(\"/scriptname.R\")");
re.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM