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.