Я использую RCaller для выполнения R файла на Java.
В принципе, это выглядит так:
RCaller caller = new RCaller();
RCode code = new RCode();
caller.setRscriptExecutable(PATH_TO_EXECUTABLE);
caller.cleanRCode();
code.R_source(PATH_TO_FILE);
code.addRCode("result<-test('" + param + "')");
caller.setRCode(code);
caller.runAndReturnResult("result");
... моя проблема в том, что я использую Rcpp
в этом R файле (PATH_TO_FILE
), и для компиляции этого внешнего файла C++ в R требуется несколько секунд. Поэтому я хочу повторно использовать эту функцию, а не компилировать этот файл все время, когда я выполняю .runAndReturnResult(...)
.
Файл R выглядит так:
library(Rcpp)
sourceCpp("/cppTest.cpp")
myfunc<- test(param)
{
t<-cppTest(4)
return(t)
}
Кто-нибудь есть идея, как достичь этого, используя RCaller
или любые другие предложения в случае других библиотек, которые способны на это?
Помощь очень ценится! Спасибо заранее, Крис
Я не рассматриваю это как проблему Rcpp. Он работает так, как было разработано - ваше развертывание внутри Java может помешать вам.
Повторное использование кода R обычно достигается путем создания пакета, который надежно позволяет хранить и перезагружать объектный код. Это (между прочим), для чего нужен пакет.
Вы в основном попросите sourceCpp()
также дать вам преимущества пакета. Этого не произойдет. Пожалуйста, используйте пакет.
И с этим это не имеет ничего общего с вложением внутри приложения Java.
use a package
? Я просто Java-разработчик, который получил R-скрипт ...: / / Некоторые дополнительные подсказки или ссылки? Спасибо вам большое!