到目前为止,我一直在尝试在 Rcpp 中实现应用功能,代码如下所示
//[[Rcpp::export]]
NumericVector apply(NumericMatrix x,int dim,Function f){
NumericVector output;
if(dim==1){
for(int i=0;i<x.nrow();i++){
output[i]=f(x(i,_));
}
}
else if(dim==2){
for(int i=0;i<x.ncol();i++){
output[i]=f(x(_,i));
}
}
return(output);
}
Run Code Online (Sandbox Code Playgroud)
但我在第 6 行和第 11 行收到错误“无法将 SEXP 转换为赋值中的双精度值”。有没有办法将任意函数返回的值转换为双精度值?应用函数也有一个糖函数。