As I'm often confronted with situations where S4 programming is needed to keep an overview, I've collected quite some sources on S4 objects, methods and programming. I've listed them here as a reference. Please add your own sources as well.
On the web
- The
methods
help files : help files from the package methods, where much of the necessary information can be found - S4 classes in 15 pages : Short introduction on the programming with S4 objects.
- How S4 methods work : more explanation about the underlying mechanisms.
- Not so short introduction to S4 : with practical examples of how to construct the classes and some useful tips. It contains a handy overview as appendix, but contains errors as well. Care should be taken using this one.
- OOP in R : handout notes with practical examples on S3 and S4
- S4 Objects : presentation by Thomas Lumley about S4 objects.
- R object oriented programming : in-depth introduction to object oriented programming in R. It covers S3, S4 and S4 reference classes. The accompanying sequences package implements the class system used throughout the slides.
Books
- Software for Data Analysis-Programming with R (J. Chambers) : A classic, although not reviewed positive everywhere, that contains a large section on S4
- R programming for Bioinformatics (R. Gentleman) : specifically directed towards working with Bioconductor, which is completely based on S4. But it gives a broad overview and is useful for many other people too.
PS : if somebody finds the community checkbox, you can make this a community-owned post. Somehow I can't find it in the edit window any more...
My write up of S4 (still in progress) is available here: http://adv-r.had.co.nz/S4.html
R for programmers (Matloff) (free) and Introduction to scientific programming and simulation (Jones) have a short section on "new-style" S4 classes.
Another good book by John Chambers: "Programming with Data: A Guide to the S Language". As the name suggests it is actually about S, not R, but it provides a lot of valuable information about S4 classes anyway.
There's also some information in the R manuals "Writing R Extensions" and "R Internals" (particularly the latter). Those can be found at http://cran.r-project.org/doc/manuals/.
Finally, I would recommend "How S4 Methods Work", which is a great overview of how to think about S4 as it fits into R.
来源:https://stackoverflow.com/questions/4143611/sources-on-s4-objects-methods-and-programming-in-r