2016-08-01 101 views
1

我在R中有一个包X。该包有一个函数foo()。我想在cpp文件中调用函数foo()(使用Rcpp)。可能吗?从rcpp代码包中调用函数

#include <Rcpp.h> 

void function01() { 

    // call foo() from package X ?? 
} 
+2

这基本上是(也许*不太*)一http://stackoverflow.com/q/21225662/1968 –

+0

关闭重复足够对我来说是一个骗局。已知的功能,有据可查,没有重复SO的混乱。 –

回答

6

这是一种重复。虽然,大多数情况下不涉及从用户定义的包进行调用。

其结果是,使用的模具是:

#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(....); 

}