Hi, Have you considered using the function as.matrix? It is an R function but you can call it from within your Rcpp code as well. Once you have a matrix you can use your matrix solution.
Rgds Sameer On Thu, May 19, 2016 at 5:46 AM Paul Saary <r...@paulsaary.de> wrote: > 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 > _______________________________________________ > Rcpp-devel mailing list > Rcpp-devel@lists.r-forge.r-project.org > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel