我使用RCaller来在Java中执行R文件。
基本上,看起来是这样的:
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");..。我的问题是,我在这个R文件(PATH_TO_FILE)中使用了PATH_TO_FILE,在R中编译这个外部C++文件需要几秒钟时间,因此我希望在执行.runAndReturnResult(...)时重用这个函数,而不是一直编译这个文件。
R文件如下所示:
library(Rcpp)
sourceCpp("/cppTest.cpp")
myfunc<- test(param)
{
t<-cppTest(4)
return(t)
}有人知道如何使用RCaller或任何其他建议来实现这一点吗?如果其他库能够做到这一点呢?
帮助是非常感谢的!谢谢你,克里斯
发布于 2014-03-29 15:01:32
我不认为这是Rcpp的问题。它按设计工作-- Java中的部署可能会妨碍您。
重用R代码通常是通过创建一个包来实现的,它允许您可靠地存储和重新加载对象代码。这就是(除其他外)包的用途。
本质上,您要求对sourceCpp()进行重新设计,以使您也能获得包的好处。那是不可能的。请用包裹。
因此,这与Java应用程序中的嵌入无关。
https://stackoverflow.com/questions/22732483
复制相似问题