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 $... 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? 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 $... ?
"a$b" = "a[['b']] = attribute "b" of list "a". 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. hope this helps. spencer graves 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 $... > 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? > > 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 $... ? > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
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