首页 > 解决方案 > 无法集成 renjin 的 Rcpp 包

问题描述

我正在尝试将 r 代码集成到 java 中,并希望在 r 代码中使用 c++ 代码,但出现以下错误。

“org.renjin.eval.EvalException:无法解析包'Rcpp'中的本机方法'sourceCppContext'”

在运行我的java代码时。

我的 Java 代码片段:

r.eval(String.format("source(\"" + appdir +  "/config/MyRscript.R\")"));
String rS = ((SEXP)r.eval("test("+i+")")).toString();

代码:

library(Rcpp)
sourceCpp("Rfunction.cpp")

test <- function(a) {
   x <<- timesTwo(a)
   print(x)
}

C++ 代码:

#include <Rcpp.h>
using namespace Rcpp;

int timesTwo(int x) {
    return x * 2;
}

标签: rcpprjavarenjin

解决方案


Renjin 没有,也可能无法合理地支持 sourceCpp()。您需要将 C++ 代码移动到可以在构建时编译为 JVM 字节码的打包位置,或者用 R 或 Java 重写。


推荐阅读