NumericMatrix的Rcpp糖

时间:2014-06-25 23:55:13

标签: r rcpp

对于NumericVector,我可以使用包含子集位置的NumericVector对较小的IntegerVector进行子集化。

e.g。假设x<-c(1,2,2,3,4,5)idx<-c(1,3,4)xsub<-x[idx]1 2 3

在RCpp中,我可以简单地使用xsub=x[idx]

是否有类似方法使用NumericMatrixIntegerVector的行进行子集化?

例如,以下代码xmatsub=xmat(idx,_)对我不起作用。

1 个答案:

答案 0 :(得分:5)

有办法。你必须手动完成,这并不复杂。

NumericMatrix res( idx.size(), m.rows() )  ;
for( int i=0; i<idx.size(); i++){
    res.row(i) = m.row(idx[i]-1) ; 
}