r-等效于iS.factor和iS.numeric在rcpp中

  • 本文关键字:iS numeric rcpp factor r rcpp
  • 更新时间 :
  • 英文 :


我正在尝试向RCPP移植一些距离函数的R代码:

distanceFunction <- function(row1, row2){
  distance = 0
    for(f in names(row2))
      if (is.factor(row2[[f]])){
        if (!(row2[[f]] == row1[[f]]))
          distance = distance + 1
      } else if(is.numeric(row2[[f]])) {
        distance = distance + abs(row2[[f]] - row1[[f]])
      }
  distance
}

不幸的是,我找不到如何检查数据类型(RCPP中的因子或数字)

"因子"不是SEXP级别表示的类型,因此RCPP在C 级别不支持。我建议您使用整数表示调用您的功能。

可以通过多种方式测试is.numeric()的等效物。请参阅编写r扩展名,以了解C 方式在RCPP画廊中的几个帖子。您可以使用特征以及is*谓词。

最新更新