2016-08-01 106 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(....); 

}