对于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]
。
是否有类似方法使用NumericMatrix
对IntegerVector
的行进行子集化?
例如,以下代码xmatsub=xmat(idx,_)
对我不起作用。
答案 0 :(得分:5)
有办法。你必须手动完成,这并不复杂。
NumericMatrix res( idx.size(), m.rows() ) ;
for( int i=0; i<idx.size(); i++){
res.row(i) = m.row(idx[i]-1) ;
}