[Rcpp-devel] Returning an element from a List with its attributes?

Tal Galili tal.galili at gmail.com
Tue Aug 20 11:04:23 CEST 2013


Dear list members,

I would like to be able to get an element pushed with its attributes, and I
came across the following problem:

cppFunction('
std::vector<List>  temp(List x){
   std::vector<List> lower;
   lower.push_back(x);
   return(lower) ;
}
            ')
x = list(structure(1L, animal = "cat"))
temp(x)
temp(x[1])
temp(x[[1]]) # is there a way to not make this output without attributes?



If I use RObject, it will solve it, but then I would later not be able to
iterate over the object, because I can't seem to get the .size() of an
RObject.

Here is the code with the RObject:


cppFunction('
std::vector<RObject>  temp2(RObject x){
   std::vector<RObject> lower;
   lower.push_back(x);
   return(lower) ;
}
            ')
x = list(structure(1L, animal = "cat"))
temp2(x)
temp2(x[1])
temp2(x[[1]]) # Now it works as I want, but the following wouldn't work:




cppFunction('
std::vector<RObject>  temp2_fail(RObject x){
   std::vector<RObject> lower;
   int n x.size();
   lower.push_back(x);
   return(lower) ;
}
            ')



Any ideas?




----------------Contact
Details:-------------------------------------------------------
Contact me: Tal.Galili at gmail.com |
Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
www.r-statistics.com (English)
----------------------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130820/d020d2a2/attachment.html>


More information about the Rcpp-devel mailing list