Estoy buscando si es posible tener la misma funcionalidad que with()
en R en Rcpp para entornos.Evaluar expresiones en entornos en Rcpp
Por ejemplo, en RI podría crear un entorno, añadir dos variables y el uso de with()
para evaluar una expresión utilizando sólo los variablenames:
e <- new.env()
e$x <- 1
e$y <- 2
with(e,
x + y
)
que podría hacer algo similar en RCPP, pero requiere la indexación de la entorno:
f <- cxxfunction(signature(env="environment"), '
Environment e(env);
double Res = (double)e["x"] + (double)e["y"];
return(wrap(Res));
', plugin = "Rcpp")
f(e)
¿Es posible evaluar una expresión utilizando solo los nombres de las variables en Rcpp? La razón por la que estoy preguntando es porque quiero escribir una especie de función dinámica de C++ donde puedes agregar expresiones. Por ejemplo con un poco de código ficticio eso no funciona:
f <- cxxfunction(signature(env="environment"), sprintf('
Environment e(env);
double Res;
// Res = with(e, %s);
return(wrap(Res));
','x + y'), plugin = "Rcpp")