1

我正在使用 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()");

在上面的代码库中,当我尝试 plot(t,Y) 或 plot(Y) 时。它导出一个空白图像,而在 plot(mydata) 的情况下它是工作文件。

当我在 R 中运行上面的代码时,还有一件事会创建图像(使用 JRI 它显示空白图像)。

我花了 1 天时间来解决这个问题,但我没有找到任何解决方案。

请建议您是否有其他选择。

需要你的帮助。

提前致谢

4

1 回答 1

1

如果我理解正确,您有一个名为mydata的数据集,它有两列NewVisitsDay.Index,在这种情况下您需要更改:

rengine.eval("Y <- NewVisits");

rengine.eval("Y <- mydata$NewVisits");

rengine.eval("t <- Day.Index");

rengine.eval("t <- mydata$Day.Index");

这也解释了为什么plot(mydata)对你有用——因为 R 可以识别它。

如果这不是解决方案,那么我看不到您从哪里阅读NewVisitsDay.Index

顺便说一句,我强烈建议使用该 ggplot软件包 进行绘图

于 2014-07-02T10:24:03.073 回答