从R到Rcpp调用函数

时间:2019-06-13 19:45:47

标签: r package rcpp

假设我在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 ”。

我该怎么办?

0 个答案:

没有答案