[R] What does m$... mean?

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Aug 13 07:24:20 CEST 2003


On Wed, 13 Aug 2003, Richard A. O'Keefe wrote:

> While reading through some of the R source code, I have come
> across forms such as
>     m$...
>     m$... <- e
> and I wondered what they meant.
> 
> ?"$" mentions x$name, but not $... 

... is a name, a special one in the context of function calls.

> All it says is
> 
>      The operators `$' and `$<-' do not evaluate their second argument.
>       It is translated to a string and that string is used to locate
>      the correct component of the first argument.
> 
> Does this mean that m$... is the same as m$"..."
> and m$... <- e is the same as m$"..." <- e?

Yes.

> That's what it seems to do when I try it on some small data frames,
> but is that ALL there is to it, or is there some special magic going
> on?  Is there any connection with the use of ... in formal and actual
> parameter lists, or is it just accidental?  Why would anyone _want_
> to use $... ?

To add or to change (but almost always to remove) the component of a list
named ...  .  And they occur frequently in matched calls.

This construction (like many others) is explained in `S Programming': it 
seems you may find it enlightening.

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