title: Sources on S4 objects, methods and programming in R
body: <p>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.</p>
  
  <p><strong>On the web</strong></p>
  
  <ul>
  <li><a href="http://stat.ethz.ch/R-manual/R-devel/library/methods/html/Methods.html">The <code>methods</code> help files</a> : help files from the package methods, where much of the necessary information can be found</li>
  <li><a href="http://www.stat.auckland.ac.nz/S-Workshop/Gentleman/S4Objects.pdf">S4 classes in 15 pages</a> : Short introduction on the programming with S4 objects.</li>
  <li><a href="http://developer.r-project.org/howMethodsWork.pdf">How S4 methods work</a> : more explanation about the underlying mechanisms.</li>
  <li><a href="http://cran.r-project.org/doc/contrib/Genolini-S4tutorialV0-5en.pdf">Not so short introduction to S4</a> : 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.</li>
  <li><a href="http://www.math.ku.dk/~richard/courses/bioconductor2009/handout/17_08_Monday/OOP-handouts.pdf">OOP in R</a> : handout notes with practical examples on S3 and S4</li>
  <li><a href="http://www.soph.uab.edu/Statgenetics/Events/Rshort/060227-8-s4slides.pdf">S4 Objects</a> : presentation by Thomas Lumley about S4 objects.</li>
  <li><a href="https://github.com/lgatto/roo">R object oriented programming </a> : in-depth introduction to object oriented programming in R. It covers S3, S4 and S4 reference classes. The accompanying <a href="https://github.com/lgatto/sequences/">sequences</a> package implements the class system used throughout the slides.</li>
  </ul>
  
  <p><strong>Books</strong></p>
  
  <ul>
  <li>Software for Data Analysis-Programming with R (J. Chambers) : A classic, although not reviewed positive everywhere, that contains a large section on S4</li>
  <li>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.</li>
  </ul>
  
  <p>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...</p>