如何在java中调用R的auto.Arima函数并存储预测结果?
我不熟悉Java中的R。我使用Java中R的auto.Arima函数来预测12个时段的数据。但预测结果的周期为十个周期。12个预测期我该怎么做?我还想将预测结果存储在一个数组中。这是我的代码,它无法停止运行,我收到错误消息 我能做些什么来存储它的结果如何在java中调用R的auto.Arima函数并存储预测结果?,java,r,jri,forecasting,Java,R,Jri,Forecasting,我不熟悉Java中的R。我使用Java中R的auto.Arima函数来预测12个时段的数据。但预测结果的周期为十个周期。12个预测期我该怎么做?我还想将预测结果存储在一个数组中。这是我的代码,它无法停止运行,我收到错误消息 我能做些什么来存储它的结果 package Arima; import org.rosuda.JRI.REXP; import org.rosuda.JRI.Rengine; public class Arima { public static void mai
package Arima;
import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
public class Arima {
public static void main(String[] args) {
Rengine re = new Rengine(Rargs, false, null);
System.out.println("Rengine created, waiting for R");
if (!re.waitForR()) {
System.out.println("Cannot load R");
return;
}
re.eval("library(forecast);");
re.eval("data<-scan('D:/timeseries.txt',skip=1);");
re.eval("datats<-data;");
// I use auto.arima function to forecast my data for 12 periods.
// but the period of forecast result is ten period.
// How can I do for 12 periods of forecast ?
re.eval("arima<-auto.arima(datats);");
re.eval("fcast<-forecast(arima);");
REXP fs = re.eval("summary(fcast);");
// I want to get result of forecast and returned it at an array
double[] forecast = fs.asDoubleArray();
for(int i=0; i<forecast.length; i++)
System.out.println(forecast[i]);
re.end();
}
}
包Arima;
导入org.rosuda.JRI.REXP;
导入org.rosuda.JRI.Rengine;
公共类Arima{
公共静态void main(字符串[]args){
重新生成=新的重新生成(Rargs、false、null);
System.out.println(“创建了Rengine,等待R”);
如果(!re.waitForR()){
System.out.println(“无法加载R”);
返回;
}
关于评估(“图书馆(预测)”;
re.eval(“dataforecast函数有一个参数h
,用于指定预测范围。默认情况下h=10
。因此,只需将调用更改为forecast(arima,h=12)
,就可以了。如果没有获得的确切错误消息的信息,很难回答。