[R] data encapsulation with classes

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Apr 9 09:24:32 CEST 2007


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,

(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?

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

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

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



More information about the R-help mailing list