Thank you for all the responses Dirk. I will go through them one at a time to see what I can accomplish on my own. Further questions will follow in the next few weeks (I imagine).
Cheers, Tal ----------------Contact Details:------------------------------------------------------- Contact me: tal.gal...@gmail.com | Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English) ---------------------------------------------------------------------------------------------- On Sat, Jul 20, 2013 at 11:31 PM, Dirk Eddelbuettel <e...@debian.org> wrote: > > 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