2012-04-14 10 views
2

Ich versuche, das R-Paket 'Prognose importieren; in Netbeans, um seine Funktionen zu verwenden. Ich habe es geschafft, die JRI-Verbindung herzustellen und auch die javaGD-Bibliothek zu importieren und experimentierte mit einem gewissen Erfolg. Das Problem mit dem Prognosepaket besteht darin, dass ich die entsprechenden JAR-Dateien nicht finden kann, um sie als Bibliothek in mein Projekt aufzunehmen. Ich lade es normalerweise: re.eval (Bibliothek (Prognose)), aber wenn ich eine der Bibliotheksfunktion implementieren, wird ein Nullwert zurückgegeben. Obwohl ich mir ziemlich sicher bin, dass der Code korrekt ist, poste ich ihn nur für den Fall.Import R Vorhersage Bibliothek JAR-Dateien in Java

tnx im Voraus

 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("library(tseries)"); 

    re.eval("myData <- read.csv('C:/.../I-35E-NB_1.csv', header=F, dec='.', sep=',')"); 
    System.out.println(re.eval("myData")); 

    re.eval("timeSeries <- ts(myData,start=1,frequency=24)"); 
    System.out.println("this is time series object : " + re.eval("timeSeries")); 

    re.eval("fitModel <- auto.arima(timeSeries)"); 
    REXP fc = re.eval("forecast(fitModel, n=20)"); 
    System.out.println("this is the forecast output values: " + fc); 
+0

und dies ist die Ausgabe, die ich bekomme: rengine erstellt, wartet auf R! [VECTOR ([REAL * (8.81, 8.805, ... (140 weitere Werte folgen))])] Dies ist ein Zeitreihenobjekt: [REAL * (8.81, 8.805, 8.77, 8.78, 8.78,, 9.375, 9.525, 9.15, 9.19, 9.12, 9.05, 9.02, 9.075, 9.08, 9.145, ... (140 weitere Werte folgen))] dies ist die Prognose Ausgabewerte: null ???? HIER IST DAS PROBLEM – user1333584

+0

Könnte es sein, dass das Argument für die Vorhersage h = 20 nicht n = 20 sein sollte? –

Antwort

1

Sie nicht Werte von R in Java umwandeln haben, sollten Sie zunächst einen numerischen Vektor auto.arima Ausgabe in R erstellen und dann die Methode verwenden .asDoubleArray() zu lesen es in Java.

Ich gab ein komplettes Beispiel in [hier] How I can load add-on R libraries into JRI and execute from Java?, die genau zeigt, wie die auto.arima-Funktion in Java mit JRI verwenden.