[Rcpp-devel] Transform arbitrary R object into std::vector<vector<double>>
Paul Saary
rcpp at paulsaary.de
Thu May 19 12:46:09 CEST 2016
Hello,
I have been trying to solve this problem for quite some time now, so I
thought I'd ask here.
I am trying to write a Cpp function, accepting multiple input types,
such as matrices and dataframes.
I understood that I could do this by accepting any SEXP object.
The core problem now is to transform these object into something my
software can use, which would be an object of type
std::vector<vector<double>>.
Currently my function looks like this:
List handleRObject(SEXP Robj){
std::vector<vector<double>> internalMatrix;
// convert Robj to internalMatrix
// thats where I am stuck
// do some stuff and return List
return(wrap(someoutput))
}
I tried many differnt things (using as, switch statements, etc...), but
I do not seem to fully grasp on how tonhandle this problem, as none of
them worked.
I can transform a NumericMatrix using this code, but could not addapt
this to a more general approach.
// use rMatrix as input
int nc = rMatrix.ncol();
internalMatrix.resize(nc);
for( int i=0; i<nc; i++){
NumericMatrix::Column col = rMatrix(_,i) ;
internalMatrix[i].assign( col.begin() , col.end() ) ;
}
I though, maybe someone can give me a hint on how to solve this?
Bests,
Paul
More information about the Rcpp-devel
mailing list