Спасибо за Ваш интерес к Rcpp ! Мы с Роменом обычно предлагаем задать вопросы в списке rcpp-devel; вы, вероятно, получаете там несколько более подходящих глазных яблок.
Здесь вы попали в ловушку одиночных и двойных кавычек. Переключение вокруг этого заставляет все это работать. Я также немного переупорядочил / переставил / поменял код, пока играл с ним:
> f <- cxxfunction(signature(),
+ body=' Environment e = Environment::global_env();
+ std::vector<double> vx = e["x"];
+ return wrap(vx); ',
+ plugin="Rcpp")
> x <- 3:6
> f()
[1] 3 4 5 6
>
Редактировать: Для того, что это стоит, здесь то же самое, но передача окружающей среды вниз. Это то, с чем я играл в первую очередь и что мне как-то нравится лучше
f <- cxxfunction(signature(env="environment"),
body=' Environment e(env);
std::vector<double> vx = e["x"];
return wrap(vx); ',
plugin="Rcpp")
env <- new.env()
env[["x"]] <- 1:4
f(env)