2012-01-22 12 views
2

私はJavaでRを初めて使う人です。 JavaでRのauto.Arima関数を使用して、データを12期間予測します。予測結果の期間は10期間です。 12の予測期間にはどうすればいいですか?また、予測の結果を配列に格納したいこれは私のコードです。実行を停止することはできません。エラーメッセージが表示されます。JavaでRのauto.Arima関数を呼び出す方法と予測の結果を格納する方法?

結果を保存するにはどうすればよいですか?

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(); 
    } 
} 
+0

あなたが得ている正確なエラーメッセージに関する情報なしでは難しいです。 – tmr

答えて

3

予測関数には、予測水平線を指定する引数hがあります。既定値はh=10です。ちょうどforecast(arima,h=12)にあなたの呼び出しを変更し、それはうまくいくはずです。

関連する問題