[R] What does m$... mean?
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Aug 13 07:31:09 CEST 2003
On Tue, 12 Aug 2003, Spencer Graves wrote:
> "a$b" = "a[['b']] = attribute "b" of list "a".
(Not quite always. First, it is `component' not `attribute' and second $
and [[ ]] do behave differently, e.g. for data frames in 1.7.x.)
> A basic object in R is a list, and the "$" operator provides one means
> of accessing named attributes of a list.
>
> Beginning with R 1.7, objects can also have "slots", which are
> accessed as "a at b". I have yet to understand why "slots" were
> introduced; perhaps someone else will explain this.
Slots are part of objects which have formal (S4) classes, made using the
`methods' package (so have been around since at least R 1.4.0).
They are an implementation of the ideas of Chambers (1998). Formally
classed objects are not just lists: they have rules for the number, names
and types of the slots. (Currently they are lists, but that's an
implementation detail.)
--
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