原始R功能:
psiBiSquare<-function(r,c){
true<-abs(r)<=c
false<-abs(r)>c
psi<-true*(r*(1-(r/c)^2)^2)+false*0
return(psi)
}
我用以下更快的Rcpp实现替换它:
#include <Rcpp.h>
#include <math.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector psiBS_rcpp(NumericVector r, double c) {
int n =r.size();
NumericVector y = clone(r);
for(int i=0;i<n;i++){
if(abs(r[i])<=c){
y[i]=(r*pow(1-pow(r/c,2),2));
}
else{
y[i]=0;
}
}
return y;
}
错误信息是&#34;无法转换rcpp :: sugar ::&#34;我做错了什么?