Brian Willis <b.h.willis <at> bham.ac.uk> writes:

> 
> Hi All,
> I need to be able to manipulate the names of the coefficients from
> *ranef()*.
> 
> If there is any missing data when fitting a mixed model using lmer, no
> estimate is returned for the associated level for that random effect. Thus
> if the data input for regions had levels 
>       *Region*
>         Bolton
>       Bradford                    
>         Cambridge
>         Durham                                                 
> and there was missing data on Bradford then 
> * ranef(model)*                                       gives 
>                                                            (Intercept)
> Bolton:                                                 -0.0981763413
> Cambridge                                                0.0151102347
> Durham                                                   0.1837142259


  I think you want to use rownames():

library(lme4)
d <- expand.grid(f=factor(LETTERS[1:10]),rep=1:10)
d$y <- rnorm(100)
m <- lmer(y~(1|f),data=d)

rownames(ranef(m)[[1]])

> This becomes a problem if I want to use *predict( )* on new data where there
> is no missing data on Bradford. In such an instance
> 
>       *predict (model, newdata = newInput) *
> gives the following error message 
> 
>              ‘Error in (function (x, n)  : new levels detected in newdata’
> 
> I could get round this by checking the Region field of the new data
> ‘newInput’ against the names of the levels of the intercept coefficients
> from* ranef().*
> However, I’m not sure how to access these since if 
> *x<- ranef(model)
> x *

  You should also check the allow.new.levels argument in
?predict.merMod, and send followups to r-sig-mixed-mod...@r-project.org.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to