Как я могу использовать библиотеки R, такие как "dplyr" через Java RCaller

Я сделал графический интерфейс для Netbeans v.8.2, который использует некоторые Rscripts. Я использовал пакет Rcaller и Rjava. Мое соединение Java-R работает, когда я хочу сделать базовое исчисление. Но я не знаю, как я могу использовать библиотеки R, такие как dplyr через Java.

У меня есть класс Rclient, с которым я связываюсь со своими Rscripts внутри папки проекта.

Вот код Java, который правильно работает в Rscript с простыми вычислениями в классе "Rclient":

    public static String subsetData(String fileName){
    fileName=fileName.replace("\\","/");
    Globals.detect_current_rscript();
    final RCallerScriptEngine engine = new RCallerScriptEngine();        
    engine.put("fileName", fileName);
    String outFileName=fileName + "_subset";
    engine.put("outFileName",outFileName );
    runScript(engine, "2_subset_data_.R");
    engine.close();
    return outFileName;

}    

Вот скрипт R (2_subset_data_.R), для которого нет вызова библиотеки R:

    data <- read.csv(fileName);
    mydata <- subset(data, 
               select = c(
                 "X.U.FEFF",
                 "kazaSiraNo",
                 "surucuVatandaslikNo"
               )); 

    write.csv(mydata, file = outFileName);

Вот код Java, который выполняется НЕ ПРАВИЛЬНО в Rscript с вычислениями пакета dplyr в классе "Rclient":

    public static String cleanData(String fileName){
    fileName=fileName.replace("\\","/");
    Globals.detect_current_rscript();
    final RCallerScriptEngine engine = new RCallerScriptEngine();        
    engine.put("fileName", fileName);
    String outFileName=fileName + "_clean";
    engine.put("outFileName",outFileName );
    runScript(engine, "clean_data.R");
    engine.close();
    return outFileName;

}    

Вот скрипт R (clean_data.R), КОТОРЫЙ НЕСКОЛЬКО БИБЛИОТЕК вызывает код:

    library(Runiversal);
    library(dplyr);

    data <- read.csv(fileName);

    mydata <- dplyr::filter(data, 
                             nchar(data[,"surucuVatandaslikNo"]) == 11);
    write.csv(mydata, file = outFileName);          

Может ли кто-нибудь помочь мне использовать эти библиотеки? Как проверить, действительно ли загружены библиотеки?

0 ответов

Другие вопросы по тегам