Rcaller выполняет функцию из файла .R

1

Я пытаюсь выполнить R файл из java, вот код, который я пробовал.

RCaller caller = new RCaller();
RCode code = new RCode();  
caller.setRscriptExecutable("D:\\R\\R-3.0.2\\bin\\Rscript.exe");    
code.clear();
caller.setRCode(code);
code.R_source("D:\\Data\\Workspace\\Cpackage\\try.R");
caller.setRCode(code);
caller.runOnly();

Файл try.R

myinput<-function(){
//loading a csv file,reading it and creating an excel file(Working when it is run from r directly)
}

myinput()

Вышеупомянутый код java-кода rcaller ничего не делает. Пожалуйста, помогите, если я делаю что-то неправильно, мне нужно сделать это очень плохо. Если есть какой-то другой способ достичь этого, пожалуйста, предложите!

Теги:
rcaller

1 ответ

0

RCaller не изменяет формат пути Java, который указан в

code.R_source("D:\\Data\\Workspace\\Cpackage\\try.R");

в формате R. Это создает R-код, например

source("D:\\Data\\Workspace\\Cpackage\\try.R")

поэтому вам нужно изменить его на

code.R_source("D:/Data/Workspace/Cpackage/try.R");

Хорошо видеть исходный код в источнике Rcaller, можно видеть, что

public void R_source(String sourceFile) {
    addRCode("source(\"" + sourceFile + "\")\n");
}

определяет функцию с буквально заданным R файлом в виде строки R.

  • 0
    Пробовал, но без разницы.
  • 0
    Но когда я делаю caller.runAndReturnResult ("myinput ()"); вместо caller.runonly (), который он выдает. Не может обработать результаты R из-за: rcaller.exception.RCallerParseException: Невозможно проанализировать вывод R: org.xml.sax.SAXParseException; Ошибка.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню