我希望你真正的C++功能不仅仅是调用R,否则这毫无意义。无论如何:
-
NULL
在C++和R中是不同的。使用
Rcpp::Nullable<T>
-
如果r函数有要指定的默认参数,则必须按正确的顺序执行此操作。
-
[[
在R和C++中有不同的含义。
-
你为什么要回一个
List
什么时候
sum
返回A
double
?
这里是调整后的代码:
#include <Rcpp.h>
using namespace Rcpp;
double acfC(NumericVector x, bool plot = true, Nullable<int> lagmax = R_NilValue) {
Environment stats("package:stats");
Function ri = stats["acf"];
Function na_pass = stats["na.pass"];
List result = ri(x, lagmax, "correlation", plot, na_pass);
NumericVector acf = result["acf"];
return(sum(acf));
}