6

当我尝试在 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。

4

1 回答 1

0

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

例如:

REngine re = new JRIEngine(new String[] { "--no-save" }, new RCallback(), false);
re.parseAndEval("source(\"/scriptname.R\")");
re.close();
于 2014-07-14T16:40:00.077 回答