r rcpp

Llamar a una función desde c++ a través del entorno Rcpp



(1)

fivenum función fivenum no está definida en el entorno global, sino en el entorno del paquete de stats , por lo que debe obtenerla de eso:

... Environment stats("package:stats"); Function f = stats["fivenum"]; ...

Estoy considerando llamar a una función R desde c ++ a través del entorno, pero recibí un error, esto es lo que hice

#include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector call(NumericVector x){ Environment env = Environment::global_env(); Function f = env["fivenum"]; NumericVector res = f(x); return res; }

Escribe call(x) , esto es lo que obtuve,

Error: cannot convert to function

Sé que puedo hacerlo bien de otra manera,

#include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector callFunction(NumericVector x, Function f) { NumericVector res = f(x); return res; }

y escribe

callFunction(x,fivenum)

Pero todavía me pregunto por qué falló el primer método.