6
我正在研究是否可以在Rcpp for R中爲環境具有與with()
相同的功能。評估Rcpp環境中的表達式
例如,RI可以創建一個環境,增加兩個變量,並使用with()
僅使用variablenames計算表達式:
e <- new.env()
e$x <- 1
e$y <- 2
with(e,
x + y
)
我可以做RCPP類似的東西,但它需要的索引環境:
f <- cxxfunction(signature(env="environment"), '
Environment e(env);
double Res = (double)e["x"] + (double)e["y"];
return(wrap(Res));
', plugin = "Rcpp")
f(e)
是否可以使用Rcpp中的變量名來評估表達式?我問的原因是因爲我想編寫一種動態C++函數,您可以在其中添加表達式。例如有一些虛擬的代碼,不工作:
f <- cxxfunction(signature(env="environment"), sprintf('
Environment e(env);
double Res;
// Res = with(e, %s);
return(wrap(Res));
','x + y'), plugin = "Rcpp")