Tôi đang xem liệu có thể có cùng chức năng như with()
trong R trong Rcpp cho môi trường hay không.Đánh giá các biểu thức trong môi trường trong Rcpp
Ví dụ, trong RI có thể tạo ra một môi trường, thêm hai biến và sử dụng with()
để đánh giá một biểu thức chỉ sử dụng variablenames:
e <- new.env()
e$x <- 1
e$y <- 2
with(e,
x + y
)
tôi có thể làm điều gì đó tương tự trong Rcpp, nhưng nó đòi hỏi chỉ mục của môi trường:
f <- cxxfunction(signature(env="environment"), '
Environment e(env);
double Res = (double)e["x"] + (double)e["y"];
return(wrap(Res));
', plugin = "Rcpp")
f(e)
Có thể đánh giá biểu thức chỉ sử dụng tên biến trong Rcpp không? Lý do tôi yêu cầu là vì tôi muốn viết một loại hàm C++ động mà bạn có thể thêm các biểu thức. Ví dụ với một số mã giả mà không hoạt động:
f <- cxxfunction(signature(env="environment"), sprintf('
Environment e(env);
double Res;
// Res = with(e, %s);
return(wrap(Res));
','x + y'), plugin = "Rcpp")