Viechtbauer, Wolfgang (SP)
2019-Mar-05 11:20 UTC
[Rd] Weird problem / bug with augPred() from nlme
Posted this to r-sig-mixed-models (https://stat.ethz.ch/pipermail/r-sig-mixed-models/2019q1/027620.html) but this might rather need to go to r-devel anyway, so reposting here: I came across a weird problem / bug with augPred() from nlme (nlme_3.1-137). Here is a reproducible example to illustrate the issue (tested on R 3.5.2 and R-devel 2019-03-03 r76192): library(nlme) dat <- data.frame(id = c(1,1,1,2,3,3,4,4,4,4), xi = c(1,2,3,1,1,2,1,2,3,4), yi = c(2,1,4,2,3,2,5,4,6,8), zi = c(rep("a",9), NA)) res1 <- lme(yi ~ xi, random = ~ 1 | id, data=dat) sav1 <- augPred(res1, primary = ~ xi) # WORKS dat$zi <- "a" res2 <- lme(yi ~ xi, random = ~ 1 | id, data=dat) sav2 <- augPred(res2, primary = ~ xi) # WORKS dat$zi[10] <- NA res3 <- lme(yi ~ xi, random = ~ 1 | id, data=dat) sav3 <- augPred(res3, primary = ~ xi) # ERROR The error message: Error in `[[<-.data.frame`(`*tmp*`, nm, value = c(1L, 1L, 1L, 2L, 3L, : replacement has 10 rows, data has 4 So, if 'zi' is a factor, then a missing value causes no problems (sav1). Or if 'zi' is a character variable without any missings, then augPred() also runs (sav2). But if 'zi' is a character variable and there is at least one missing value, then augPred() fails (sav3). This aside, why does 'zi' even play a role here? It isn't used at all in the model fit. Best, Wolfgang