对于NumericVector
,我可以将一个较小的 NumericVector
进行子集化通过使用 IntegerVector
包含要子集化的位置。
例如假设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,_)
不适合我。
最佳答案
没有办法。你必须手动完成,这并不复杂。
NumericMatrix res( idx.size(), m.rows() ) ;
for( int i=0; i<idx.size(); i++){
res.row(i) = m.row(idx[i]-1) ;
}
关于NumericMatrix 的 Rcpp 糖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24420445/