我正在使用JRI进行java和R集成。 请在下面找到脚本
String path = "C:\\Users\\hrpatel\\Desktop\\CSVs\\DataNVOCT.csv";
rengine.eval("library(tseries)");
rengine.eval(String.format("mydata <- read.csv('%s')",path.replace('\\', '/')));
String exportFilePath= "C:\\Users\\hrpatel\\Desktop\\CSVs\\arima3.jpg";
rengine.eval("Y <- NewVisits");
rengine.eval("t <- Day.Index");
rengine.eval("summary(Y)");
rengine.eval("adf.test(Y, alternative='stationary')");
rengine.eval("adf.test(Y, alternative='stationary', k=0)");
rengine.eval("acf(Y)");
rengine.eval("pacf(Y)");
rengine.eval("mydata.arima101 <- arima(Y,order=c(1,0,1))");
rengine.eval("mydata.pred1 <- predict(mydata.arima101, n.ahead=1000)");
rengine.eval(String.format("jpeg('%s')",exportFilePath.replace('\\', '/')));
rengine.eval("plot(t,Y)");
rengine.eval("lines(mydata.pred1$pred, col='blue',size=10)");
rengine.eval("lines(mydata.pred1$pred+1*mydata.pred1$se, col='red')");
rengine.eval("lines(mydata.pred1$pred-1*mydata.pred1$se, col='red')");
rengine.eval("dev.off()");
在上面的代码库中,当我尝试绘图(t,Y)或绘图(Y)时。它导出一个空白图像,而在情节(mydata)的情况下,它是工作文件。
当我在R中运行代码时,还有一件事就是创建图像(使用JRI显示空白图像)。
我花了1天时间来解决这个问题,但我没有找到任何解决方案。
如果您有任何其他选择,请建议。
需要你的帮助。
先谢谢
答案 0 :(得分:1)
如果我理解正确,你有一个名为 mydata 的数据集,它有两列, NewVisits 和 Day.Index ,in那种情况你需要改变:
rengine.eval("Y <- NewVisits");
到
rengine.eval("Y <- mydata$NewVisits");
和
rengine.eval("t <- Day.Index");
到
rengine.eval("t <- mydata$Day.Index");
这也解释了为什么 plot(mydata)适合你 - 因为R识别它。
如果这不是解决方案,那么我无法看到你在哪里阅读 NewVisits 和 Day.Index 来自
BTW我强烈建议使用ggplot
包