Hi Tal, On 20 July 2013 at 22:14, Tal Galili wrote: | Hello Dirk and others, | | Dirk - | Thank you for the quick reply! | | Some responses: | | | 1) I looked at the Rcpp gallery. | The best I found was: | http://gallery.rcpp.org/articles/setting-object-attributes/ | (which already was available in Hadley's book)
Sure. He too recycled some older posts. What goes around ... | And: | http://gallery.rcpp.org/articles/modifying-a-data-frame/ | http://gallery.rcpp.org/articles/reversing-a-vector/ | | And also now at unitTests/cpp/DataFrame | (interesting) | | But none have helped me with getting the attributes of an element inside a | List. | That is, say that we have x as a List, how do we go about fetching its attr? | I tried: | x[1].attr("type") | x.attr[1]("type") | But none seemed to have worked. Any suggestions there? Sometimes it is easier / better / necessary to do this in two steps. First some R data: R> foo <- list(bar=42, bing=21) R> attr(foo[[1]], "type") <- "xyz" Then a quick function in C++: R> cppFunction('CharacterVector tal(List x) { IntegerVector y = x[0]; return y.attr("type"); }') R> tal(foo) [1] "xyz" R> So once I take the element out of the list and assign it to a "standalone" variable, things work. [ This protects against overzealous template expansions. ] Similarly, I don't think you can (yet) easily do the attr() call on a sublist in a list. | 2) Your book is on my "to get a hold of somehow" list. Getting books to Israel | is always trickier - I might just get it when I'll visit the US in a few | months. I see. | 3) The post on Rcpp didn't get on R-bloggers since it wasn't marked with the | "R" category. | http://blog.revolutionanalytics.com/2013/07/ | deepen-your-r-experience-with-rcpp.html | (David could still fix it if he wants to - and set the date of the post to be | more recent) I see. Could you email Joe (or David) ? | 4) Having an | is<List>(x) will be nice. Although I will need to see some examples to see when | it is better then simply using: | x.inherits("list") | | 5) I couldn't find a | 'dispatch on type' example in the Rcpp gallery. | I'm probably missing something in how I'm searching there. Sorry, I was thinking of http://gallery.rcpp.org/articles/rcpp-wrap-and-recurse/ which uses TYPEOF() and ...SXP to match on type. | 6) Environment.cpp in the unitTest is interesting. It is probably what I | needed. Yes! | 7) To Dirk and others - I will be happy to wait a bit to see if any of you can | help by writing the R functions from my previous e-mail in Rcpp. That would be | a big help for me in understanding how the relevant pieces should fit together. | (the functions themselves are not useful, but they require many of the features | I imagine I will need later on). Maybe start with something simpler. Just recursing through a list and printing the (integer or whatever) elements is a very good exercise. Cheers, Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com _______________________________________________ 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