Meet the new pdxrlang organizers!
Sophie Yang
Marley Buchman
Ted Laderas
John Smith
S3 Objects
Scott Chamberlain (
@sckottie)
rOpenSci
S3 objects
R's first and simplest OO (Object
Oriented) system
S3 is informal and ad hoc, but it has a certain elegance in its
minimalism: you can’t take away any part of it and still have a
useful OO system
S3 - when to use S3 generics/methods
-
inputs can have many different classes
-
you want to do different things with different classes
-
you want something that's light weight
-
you want to build on top of a base R generic (e.g,
plot)
S3 - beware!
-
consider S3 failure behavior - see
.default
-
parameters should be consistent across S3 methods
-
pay attention to whether methods on generics are exported in
your pkg
-
as a user: don't call S3 methods directly, call the generic
-
no validation of checking of contents
-
extended generic methods of base functions from diff. pkgs can
conflict!
-
S3 classes can be easily dropped/lost (next slide)