Question

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

Was it helpful?

Solution

My write up of S4 (still in progress) is available here: http://adv-r.had.co.nz/S4.html

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top