[R] Creating unique combinations of factors (was Problem in lme4)

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Jul 2 18:28:58 CEST 2004


On Fri, 2 Jul 2004, Douglas Bates wrote:

> Doran, Harold wrote:
> 
> 
> > I was able to run the following in nlme successfully, but the same model
> > and code (same dataset) failed to run in lme4 and gave me the error
> > message below. Any thoughts?
> >  
> > 
> > lme(math~year, data=egsingle, random=~year|schoolid/childid)
> >  
> > 
> > Error in lme(formula = math ~ year, data = egsingle, random =
> > structure(list( : 
> > 
> >         Unable to invert singular factor of downdated X'X
> 
> Is childid unique?  If not, you will need to generate a unique id for 
> the child for the lme4 version of lme.  (This change is required because 
> the lme4 package can fit models with crossed or partially crossed 
> grouping factors.)
> 
> A simple way of creating the necessary factor (thanks to Martin Maechler 
> for showing me this) is
> 
> egsingle$chld <- (egsingle$schoolid : egsingle$childid)[drop = TRUE]

interaction(egsingle$schoolid, egsingle$childid, drop=TRUE)

is very similar and might be a bit more self-documenting (so I tend to 
prefer it).

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