【发布时间】:2015-08-24 20:42:47
【问题描述】:
原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;
}
错误信息是“cannot convert rcpp::sugar::”我做错了什么?
【问题讨论】: