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)