Rengine.eval возвращает null

У меня есть следующая реализация:

public static void main(String[] args) {
    // new R-engine
    Rengine re = new Rengine(new String[] { "--vanilla" }, false, null);
    if (!re.waitForR()) {
        System.out.println("Unable to load R");
        return;
    } else
        System.out.println("Connected to R");

    re.eval("library(RMySQL)");
    re.eval("library(xts)");
    re.eval("library(forecast)");
    re.eval("db = dbConnect(MySQL(), user='root', password='', dbname='stats_server', host='localhost')");
    re.eval(
        "data = fetch(dbSendQuery(db, \"select date(time_stamp) as date, total from history_data where discriminator='D' and hour_of_day=3\"),n=-1)");
    re.eval("data$date = as.Date(as.character(data$date), format(\"%Y-%m-%d\"))");
    re.eval("dataAsTimeSeries = xts(data$total, data$date)");
    re.eval("forecastedData = forecast(auto.arima(dataAsTimeSeries), h=20)");
    REXP mean = re.eval("forecastedData$mean");
    double[] foreCast = mean.asDoubleArray();

    for (int i = 0; i < 10; i++) {
        System.out.println(foreCast[i]);
    }
    re.end();
}

Строка double[] foreCast = mean.asDoubleArray() выбрасывает NullPointerException, потому что mean это null. Я не могу понять, почему re.eval("forecastedData$mean") возвращает null.

ОБНОВЛЕНИЕ: после долгого расследования я обнаружил, что он не загружает библиотеки (RMySQL, xts, прогноз). Я добавил библиотеки в переменную среды PATH, но они все еще не обнаружены.


person Rahul Sharma    schedule 29.07.2016    source источник
comment
Возможный дубликат Что такое исключение NullPointerException и как мне исправить?   -  person Seth    schedule 29.07.2016
comment
@Seth перефразировал вопрос. надеюсь, теперь ты понимаешь проблему   -  person Rahul Sharma    schedule 29.07.2016
comment
Хм. Я понял, но не могу понять, в чем проблема. В документации указано, что он возвращает null, если что-то не так с wnet (sic!), Поэтому ...: /   -  person Seth    schedule 29.07.2016
comment
Я попытался выполнить те же операторы в RGui, и все работает нормально.   -  person Rahul Sharma    schedule 29.07.2016
comment
Это раздражает. Вы пытались оставить другие операторы re.eval и просто выполнить последний? Он может вернуть значение null из-за того, что rengine занят.   -  person Seth    schedule 29.07.2016
comment
@Seth, просто выполняя последний оператор, не сработает, потому что значение поступает от выполнения предыдущих операторов.   -  person Rahul Sharma    schedule 29.07.2016