[Rd] unexpected behaviour in lm() (PR#3657)

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Aug 5 08:26:44 MEST 2003


On Mon, 4 Aug 2003, Thomas Lumley wrote:

> On Mon, 4 Aug 2003 ottk at bms.com wrote:
> 
> >
> > > lm(c(1:10) ~ c(1:10))
> >
> > Call:
> > lm(formula = c(1:10) ~ c(1:10))
> >
> > Coefficients:
> > (Intercept)
> >         5.5
> 
> It's a feature. Unfortunately it's not a well documented feature.  A
> variable on the right-hand side of the formula is removed if it has the
> same name as the left-hand side of the formula.  This is done in
> model.matrix.
> 
> It's a feature because
>  - it's always been done that way
>  - it allows  y~. to specify all the columns of a data frame *except* y
> 
> It needs to be documented. Unfortunately the logical place is
> help(model.matrix), where no-one will look.

It could give an informative warning though, except in the y ~ . case.
I think that is possible: let me look into the code.

-- 
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-devel mailing list