Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sources on S4 objects, methods and programming in R [closed]

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

like image 944
Joris Meys Avatar asked Nov 10 '10 10:11

Joris Meys


People also ask

What is S4 method in R?

Overview. The S4 system in R is a system for object oriented programing. Confusingly, R has support for at least 3 different systems for object oriented programming: S3, S4 and S5 (also known as reference classes).

What are S3 and S4 objects R?

The S3 and S4 software in R are two generations implementing functional object-oriented programming. S3 is the original, simpler for initial programming but less general, less formal and less open to validation. The S4 formal methods and classes provide these features but require more programming.

What are objects in R programming?

There are 6 types of objects in R Programming. They include vector, list, matrix, array, factor, and data frame. Vectors are one of the basic R programming data objects. They are six types of atomic vectors- logical, integer, character, raw, double, and complex.

What are objects and classes in R?

Everything in R is an object. An object is simply a data structure that has some methods and attributes. A class is just a blueprint or a sketch of these objects. It represents the set of properties or methods that are common to all objects of one type.


3 Answers

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

like image 72
hadley Avatar answered Sep 23 '22 05:09

hadley


R for programmers (Matloff) (free) and Introduction to scientific programming and simulation (Jones) have a short section on "new-style" S4 classes.

like image 32
Roman Luštrik Avatar answered Sep 21 '22 05:09

Roman Luštrik


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.

like image 43
Eli Sander Avatar answered Sep 20 '22 05:09

Eli Sander