Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 变量函数在C++函数中调用,通过_R_Scope_Rcpp - Fatal编程技术网

R 变量函数在C++函数中调用,通过

R 变量函数在C++函数中调用,通过,r,scope,rcpp,R,Scope,Rcpp,我在R中有一个嵌套在另一个函数中的函数。由于更深层次的函数有点慢,我决定使用sourceCpp在一些编译代码中交换。但是,该内部函数使用外部函数中定义的变量。在R中,我使用环境。什么是C++模拟?我必须使用extern关键字吗?你喜欢这个工作吗 #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] arma::mat myFunc(arma::mat a, arma::mat b){ extern arma::

我在R中有一个嵌套在另一个函数中的函数。由于更深层次的函数有点慢,我决定使用sourceCpp在一些编译代码中交换。但是,该内部函数使用外部函数中定义的变量。在R中,我使用环境。什么是C++模拟?我必须使用extern关键字吗?你喜欢这个工作吗

#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
arma::mat myFunc(arma::mat a, arma::mat b){
  extern arma::mat c;
  return a + b + c;
}

<>你可以通过RCPP将R环境降为C++。文档、这里和其他地方都有例子。但是,在那里,随机抛出C++外部环境,确实会访问环境。p> 那么,从像这里这样的外部环境中选择元素?在R代码中这样做已经不是什么好主意,所以不要用C++代码来做。你可以像Dirk说的那样,通过一个环境或者找到一个聪明的方法来从C++函数中展开框架,但是我没有显示它。只要明确地传递你需要的变量函数:R在修改时复制它们,而不是在函数被称为“我仍然在使用OpthimeIpalal.Par,Linn,……”的时候复制它们。Linn通常依赖于不在本地范围内的变量。