gpt4 book ai didi

Java RCaller 重用一个函数

转载 作者:行者123 更新时间:2023-11-29 05:25:50 26 4
gpt4 key购买 nike

我正在使用 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) 中使用 Rcpp 并且在 R 中编译这个外部 C++ 文件需要几秒钟。因此,我想重用该函数,而不是在执行 .runAndReturnResult(...) 时一直编译该文件。

R 文件如下所示:

library(Rcpp)
sourceCpp("/cppTest.cpp")

myfunc<- test(param)
{

t<-cppTest(4)
return(t)
}

有没有人知道如何使用 RCaller 或任何其他建议以防其他库能够做到这一点?

非常感谢您的帮助!提前致谢,克里斯

最佳答案

我不认为这是一个 Rcpp 问题。它按设计工作——您在 Java 中的部署可能会妨碍您。

R 代码的重用通常是通过创建一个包来实现的,该包可以可靠地允许您存储和重新加载目标代码。这就是(除其他外)包的用途。

您实质上要求重新发明 sourceCpp() 以同时为您提供包的好处。那不会发生。请使用包。

因此,这与在 Java 应用程序中嵌入无关。

关于Java RCaller 重用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com