> -----Original Message----- > From: Murad Nayal [mailto:[EMAIL PROTECTED] > Sent: Tuesday, 24 June 2003 12:02 PM > Cc: [EMAIL PROTECTED] > Subject: [R] help on R programming. > > > > > Hello all, > > I am looking for books to help me gain a firmer grasp on the S/R > programming language , programing / data structures etc. it > seems that > for this purpose two books are typically recommended: > > Programming with Data: A Guide to the S Language, John M. Chambers and > S Programming by Venables & Ripley. > > - The Chambers book is published 1998. is it a bit dated at > this point. > - is the Venables and Ripley's book a good source on the design and > manipulation of data structures in R (it seems mostly focused on R > extensions). > - are there any other books, possibly published more > recently, that you > could recommend.
I like Venables and Ripley's "S Programming". Of course it is focussed on R (S) extensions, since programming in S is often extending the language. I think there is enough information in there on data structures (don't have the book in front of me). S has very simple data structures. > > > I also have a couple of particular programming questions: > > -coming from a C++/java programming background I found that I > often end > up in R with lists of objects (each constructed, in turn, as > a list, say > list(x=x,y=y,z=z)). often, these individual objects have recursive > 'attributes' so a matrix representation of this set of > objects is not an > option. although a data.frame might be. I typically need to access > certain attributes of these objects for plotting or analysis etc. > however, I have not been able to come up with a clean way to do this? > e.g. > > object.list = list(o1=list(x=1,y=2,z=3), o2=list(x=11,y=22,z=33)) > > what I would like to do is say get a vector of x values for > the objects > in object.list, but something like > object.list[[1:length(object.list)]]$x, for example, returns NULL. > > is there a better way to set up such an object list data > structure that > will allow me to do this? try sapply(object.list, function (element) element$x) (I come from a Lisp background, so this seems natural to me. There may be better ways! *sighs with fond memories of mapcar and lambda*) > > - what is the correct way to -remove- a component from a list. this > seems to do the trick: list[[1]] = NULL, however, you'd think this > should simply attach a NULL object at the first component position? You'd think that, but you would be wrong. :-). To add a NULL object to the front of a list: c(list(NULL), object.list) Cheers, Simon. Simon Blomberg, PhD Depression & Anxiety Consumer Research Unit Centre for Mental Health Research Australian National University http://www.anu.edu.au/cmhr/ [EMAIL PROTECTED] +61 (2) 6125 3379 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
