Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
从c++;via环境Rcpp 我正在考虑通过环境调用C++函数,但是我有一个错误,这里是我做的< /P> #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector call(NumericVector x){ Environment env = Environment::global_env(); Function f = env["fivenum"]; NumericVector res = f(x); return res; }_R_Rcpp - Fatal编程技术网

从c++;via环境Rcpp 我正在考虑通过环境调用C++函数,但是我有一个错误,这里是我做的< /P> #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector call(NumericVector x){ Environment env = Environment::global_env(); Function f = env["fivenum"]; NumericVector res = f(x); return res; }

从c++;via环境Rcpp 我正在考虑通过环境调用C++函数,但是我有一个错误,这里是我做的< /P> #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector call(NumericVector x){ Environment env = Environment::global_env(); Function f = env["fivenum"]; NumericVector res = f(x); return res; },r,rcpp,R,Rcpp,我知道我可以用另一种方式做对 #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] NumericVector callFunction(NumericVector x, Function f) { NumericVector res = f(x); return res; } 但是仍然想知道为什么第一个方法失败。函数不是在全局环境中定义的,而是在stats包环境中定义的,因此您应该从以下内容获得

我知道我可以用另一种方式做对

#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
NumericVector callFunction(NumericVector x, Function f) {
    NumericVector res = f(x);
    return res;
}
但是仍然想知道为什么第一个方法失败。

函数不是在全局环境中定义的,而是在
stats
包环境中定义的,因此您应该从以下内容获得它:

...
Environment stats("package:stats"); 
Function f = stats["fivenum"];
...

fivenum函数不是在全局环境中定义的,而是在stats包中定义的。。。不确定,但这应该有效:
Environment stats(“package:stats”);函数f=stats[“fivenum”]是!它起作用了!谢谢!
callFunction(x,fivenum)
...
Environment stats("package:stats"); 
Function f = stats["fivenum"];
...