2016-08-01 17 views
1

Ich habe ein Paket X in R. Das Paket hat eine Funktion foo(). Ich möchte die Funktion foo() in einer cpp-Datei (mit Rcpp) aufrufen. Ist es möglich?Aufruf Funktion aus dem Paket in RCP-Code

+2

Diese im Wesentlichen ist (vielleicht * nicht ganz *) ein Duplikat http://stackoverflow.com/q/21225662/1968 –

+0

Nahe genug, um ein Betrüger für mich. Bekannte Eigenschaft, gut dokumentiert, kein Punkt in SO mit Wiederholungen überladen. –

Antwort

6

Dies ist eine Art Duplikat. In den meisten Fällen wird jedoch nicht von einem benutzerdefinierten Paket aus aufgerufen.

Als Ergebnis ist die Form zu verwenden:

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

}