[R] data encapsulation with classes

Martin Maechler maechler at stat.math.ethz.ch
Mon Apr 9 11:46:37 CEST 2007


>>>>> "BDR" == Prof Brian Ripley <ripley at stats.ox.ac.uk>
>>>>>     on Mon, 9 Apr 2007 08:24:32 +0100 (BST) writes:

    BDR> On Sun, 8 Apr 2007, hadley wickham wrote:
    >> On 4/8/07, Roger Bivand <Roger.Bivand at nhh.no> wrote:
    >>> On Sun, 8 Apr 2007, Peter Williams wrote:

     >>>> Hi All,
     >>>> 
     >>>> I'm new to R from a C and Octave/Matlab background.  I
     >>>> am trying to construct some classes in R to which I
     >>>> want to attach pieces of data.  First, is attr(obj,
     >>>> 'member name') <- data the accepted way of doing this?

    >>>  No, it isn't. You seem to be trying to deduce new-style
    >>> classes from a representation used before R 2.4,

    BDR> (actually, still used)

    >>> but in any case it would not be sensible. Please consult
    >>> John M. Chambers. Programming with Data.  Springer, New
    >>> York, 1998, and/or William N. Venables and Brian
    >>> D. Ripley.  S Programming. Springer, New York, 2000, or
    >>> for a shorter online resource:
    >>> 
    >>> http://www.stat.auckland.ac.nz/S-Workshop/Gentleman/Methods.pdf

    >>  Unfortunately, all of those references are at least 4
    >> years out of date when it comes to S4 methods.  Is there
    >> any comprehensive reference of the current implementation
    >> of the S4 OO system apart from the source code?

?Methods {i.e. help(Methods)} is not about the *implementation*
but still explains quite a bit about the method dispatch part of
S4.  It has had a URL to for the "How S4 Methods Work" technical
report by John Chambers; I've now also added a link to that from
http://developer.R-project.org/ (will only be active in ~ a day).

Martin

    BDR> Not that I know of, and it is a moving target.  (E.g. I
    BDR> asked recently about some anomalies in the S4 bit
    BDR> introduced for 2.4.0 and what the intended semantics
    BDR> are.)  I've said before that I believe we can only help
    BDR> solve some of the efficiency issues with S4 if we have
    BDR> a technical manual.

    BDR> It is unfair to pick out S4 here, but the 'R Internals'
    BDR> manual is an attempt to document important
    BDR> implementation details (mainly by studying the code),
    BDR> and that has only got most of the way through
    BDR> src/main/*.c.

    BDR> -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of
    BDR> Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
    BDR> University of Oxford, Tel: +44 1865 272861 (self) 1
    BDR> South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG,
    BDR> UK Fax: +44 1865 272595



More information about the R-help mailing list