Rcpp没有匹配函数来调用abs

时间:2017-08-16 12:04:33

标签: r rcpp

使用Rcpp时,我想使用函数abs,我只写Rcpp::abs(-1),但总是出错:

  

没有匹配函数来调用abs

实际上,当我写Rcpp:ab时,有一些暗示存在Rcpp::abs()。我尝试过其他一些函数Rcpp::NumericVector,它有效。我知道我可以使用std::abs(-1),我只是想知道为什么Rcpp::abs(-1)不起作用,我的系统是windows,我安装了Rtools。

1 个答案:

答案 0 :(得分:1)

Rcpp::abs()需要 Rcpp 对象,例如*Vector*Matrix

不幸的是,-1属于原始类型,例如 Rcpp 对象。

因此,以下方法可行:

#include <Rcpp.h>
// [[Rcpp::export]]
void show_rcpp_abs() {
    Rcpp::NumericVector A = NumericVector::create(-1);
    Rcpp::Rcout << "A" << Rcpp::abs(A) << std::endl;

    double B = std::abs(-1.0);
    Rcpp::Rcout << "B" << B << std::endl;
}