新手RCpp问题在这里:如何使NumericVector返回NA到R?例如,假设我有一个RCpp代码,将NA分配给向量的第一个元素。

// [[RCpp::export]]
NumericVector myFunc(NumericVector x) {
   NumericVector y=clone(x);
   y[0]=NA; // <----- what's the right expression here?
   return y;
}

最佳答案

对于给定的向量类型(NANumericVector,...),获取正确的IntegerVector的规范方法是使用静态get_na方法。就像是:

y[0] = NumericVector::get_na() ;


FWIW,您的代码与Rcpp11一样工作,该代码知道如何将静态Na_Proxy实例NA转换为目标类型的正确缺失值。

09-25 21:03