S4 Classes
Some programmers feel that S3 does not provide the safety normally associated with OOP. For example, consider our earlier employee database example, where our class "employee"
had three fields: name
, salary
, and union
. Here are some possible mishaps:
We forget to enter the union status.
We misspell union as onion.
We create an object of some class other than
"employee"
but accidentally set itsclass
attribute to"employee"
.
In each of these cases, R will not complain. The goal of S4 is to elicit a complaint and prevent such accidents.
S4 structures are considerably richer than S3 structures, but here we present just the basics. Table 9-1 shows an overview of the differences between the two classes.
Table 9-1. Basic R Operators
Operation ... |
---|
Get The Art of R Programming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.