假设我在R
中有一个简单的.GlobalEnv
函数。
times_two <- function(x) {
return(2*x)
}
我使用Rcpp
的{{1}}命令在sourceCpp
中调用此函数。 Rcpp
代码是
Rcpp
该代码有效。
现在,我想将这些函数放在相同的#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
arma::vec times_two_cpp(arma::vec x) {
Rcpp::Function times_two_R = Rcpp::Environment::global_env()["times_two"];
return Rcpp::as<arma::vec>(times_two_R(x));
}
包中。环境将是我认为的软件包名称。假设新软件包的名称为R
。但是如果我写
new_package
代替
Rcpp::Environment pkg = Rcpp::Environment::namespace_env("new_package");
Rcpp::Function times_two_R = pkg["new_package"];
使Rcpp::Function times_two_R = Rcpp::Environment::global_env()["times_two"];
出现错误“在此范围内未声明 times_two_R ”。
我该怎么办?