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

Tal Galili tal.galili at gmail.com
Tue Aug 20 11:25:58 CEST 2013


Hello Wush,
Indeed, thank you!

I will write more on this after I finish the code, since there are some
bits which are a mystery to me.

Tal


----------------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)
----------------------------------------------------------------------------------------------



On Tue, Aug 20, 2013 at 12:13 PM, Wush Wu <wush978 at gmail.com> wrote:

> Hi Tal,
>
> ```
> cppFunction('
> std::vector<RObject>  temp2_fail(RObject x){
>    std::vector<RObject> lower;
>    List x_list(wrap(x));
>    int n = x_list.size();
>    lower.push_back(x);
>    return(lower) ;
> }
>             ')
> ```
>
> Is this what you want?
>
>
> 2013/8/20 Tal Galili <tal.galili at gmail.com>
>
>> 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)
>>
>> ----------------------------------------------------------------------------------------------
>>
>>
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130820/87237240/attachment-0001.html>


More information about the Rcpp-devel mailing list