[R] column names in matrix vs. data frame in R 1.8

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Feb 17 17:40:27 CET 2004

On Tue, 17 Feb 2004 White.Denis at epamail.epa.gov wrote:

> ...
> > > Ok, I'll regard it as an inconsistency that the conversion of
> dimnames
> > > to data frame column names changes reserved words to legitimate
> names
> > > but direct assignment doesn't.
> >
> > It's not inconsistent.  data.frame has an argument `check.names' to
> > control the behaviour on *creating* a data frame, and you didn't
> consult
> > the documentation.  Using the function names<- on the list underlying
> the
> > data frame does not know or care it is applied to a data frame.
> After thinking about this, I guess I wonder why names<- shouldn't have
> the argument 'check.names' and/or check the class of its main argument.
> Why offer protection in one situation and not another?

I don't think you got the point.  names<- applies to a generic vector aka 
list, and the protection applies when generating data frames, not lists.
It really is a feature of data frames, not of lists and not of matrices.

More pedantically,

> get("names<-")
function (x, value) 
<environment: namespace:base>

so there is no possibility of an extra argument for names<-, even if a 
data-frame method were added.

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