[R] Google's R Style Guide
Vitalie S.
vitosmail at rambler.ru
Tue Sep 1 17:26:05 CEST 2009
On Tue, 01 Sep 2009 10:47:36 +0200, Corrado <ct529 at york.ac.uk> wrote:
> Thanks Duncan, Spencer,
>
> To clarify, the situation is:
>
> 1) I have no reasons to choose S3 on S4 or vice versa, or any other
> coding
> convention
> 2) Our group has not done any OO developing in R and I would be the
> first, so I
> can set up the standards
> 3) I am starting from scratch with a new package, so I do not have any
> code I
> need to re-use.
> 4) I am an R OO newbie, so whatever I can learn from the beginning what
> is
> better and good for me.
From my experience I can recommend tree things:
1) If hierarchy of your classes is complicated ( i.e. at least 3 levels of
inheritance) and/or you intend to merge functionality of several classes
into one (multiple inheritance), it's better to use S4, otherwise use S3.
Majority of statistical models in R seem not to require even 2 levels of
inheritance and OO is used mainly for method dispatch, so S3 is quite
sufficient.
2) If your classes are meant to provide functionality for fundamental
objects that you intend to use latter to build more complex structures,
then use S4 (example could be super.data.frame or super.matrix, or
implementation of sets etc). Usually this "fundamental" objects are
derived from basic pseudo-classes in R like "function" and "numeric". You
can use S4 object to build your S3 objects latter without any trouble.
Though starting R 2.8 one can integrate quite happily S3 objects into S4
and even inherit S4 from S3, that is somewhat artificial and generally not
encouraged.
3) If you start with S4 try to avoid writing validity and initialization
methods at the beginning. Put everything in the constructors, pretty much
as in S3 style.
Vitalie.
>
> So the questions would be two:
>
> 1) What coding style guide should we / I follow? Is the google style
> guide
> good, or is there something better / more prescriptive which makes our
> research group life easier?
> 2) What class type should I use? From what you two say, I should use S3
> because is easier to use .... what are the disadvantages? Is there an
> advantages / disadvantages table for S3 and S4 classes?
>
> Thanks
--
More information about the R-help
mailing list