在使用Rcpp时,我想使用函数abs
,我只编写Rcpp::abs(-1)
,但始终是一个错误:
没有对abs调用的匹配功能
实际上,当我编写Rcpp:ab
时,有一些提示表明存在Rcpp::abs()
。我尝试过其他一些函数Rcpp::NumericVector
,它可以工作。我知道我可以使用std::abs(-1)
,我只是想知道为什么Rcpp::abs(-1)
不能工作,我的系统是windows,我安装了Rtools。
发布于 2017-08-16 04:16:44
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;
}
https://stackoverflow.com/questions/45713089
复制