我在R中有一个包X
。包中有一个函数foo()
。我想在cpp文件中调用函数foo()
(使用Rcpp)。有可能吗?
#include <Rcpp.h>
void function01() {
// call foo() from package X ??
}
答案 0 :(得分:9)
这有点重复。但是,大多数情况下不涉及从用户定义的包调用。
因此,使用的模具是:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
void function01(){
// Obtain environment containing function
Rcpp::Environment package_env("package:package_name_here");
// Make function callable from C++
Rcpp::Function rfunction = package_env["function_name"];
// Call the function and receive output (might not be list)
Rcpp::List test_out = rfunction(....);
}