我有一个R :: NumericVector,我想知道是否有可能在不使用c ++的循环的情况下将其转换为std :: vector。
void someFunction(NumericMatrix mtx){
NumericVector rVec = mtx.row(0);
std::vector<int> sVec;
sVec = rVec; //<-- I wanna do something like this
}
是的,请参阅《 Rcpp插图简介》第3节as<>()
。在有关Rcpp的每一篇介绍中,这几乎都是不容错过的。
下面的示例(带有手动缩进;代码只是一长行)。
R> cppFunction("std::vector<double> foo(NumericMatrix M) {
NumericVector a = M.row(0);
std::vector<double> b = as<std::vector<double> >(a);
return b;
}")
R> foo(matrix(1:9, 3, 3))
[1] 1 4 7
R>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句