Нам нужно манипулировать объектом ranef.mer
.
library(lme4)
library(lattice)
data(sleepstudy)
fit <- lmer(Reaction ~ Days + (1 + Days|Subject), data=sleepstudy)
Во-первых, мы храним его.
r.int <- ranef(fit, condVar=TRUE)
Во-вторых, мы создаем вектор желаемых подмножеств номеров строк.
s <- c(337, 310, 333, 349)
В-третьих, внутри функции lapply
мы подгруппируем оба в списке, data.frame
и, что важно, атрибуты, где отклонения скрыты в массиве.
r.int <- lapply(r.int, function(x) {
s2 <- which(rownames(x) %in% s)
x <- x[s2, ]
attributes(x)$postVar <- attributes(x)$postVar[, , s2]
return(x)
})
В-четвертых, мы взломали требуемый ярлык класса.
class(r.int) <- "ranef.mer"
Et voilà, мы наконец можем построить желаемый выбор.
dotplot(r.int)
Урожайность