Я читаю эту книгу о данных. анализ и графика в R, и я думаю, что есть некоторые проблемы между текущей версией lme4 и той, которую они использовали (у меня есть версии 2007 и 2010). Моя текущая проблема касается страницы 340 книги, где авторы показывают, как извлечь наклоны для каждого человека, используя lmList
. Код выглядит следующим образом:
library(lme4)
data(Orthodont, package = "nlme")
ab <- coef(lmList(distance ~ age|Subject, data=Orthodont))
Это должно быть довольно просто, и в книге так кажется. Однако я получаю следующее:
Error in eval(expr, envir, enclos) : object 'Subject' not found
In addition: Warning message:
In Ops.ordered(age, Subject) : '|' is not meaningful for ordered factors
Это сбивает с толку на трех уровнях:
- Почему предмет не найден, несмотря на то, что он находится в ортодонтии?
- Как R узнает, что ненайденная переменная является упорядоченным фактором?
- Почему эта регрессия в любом случае не работает для упорядоченных факторов? Какая разница?
Я попробовал обходной путь и проверил через str(Orthodont)
, действительно ли первая команда создала новую переменную sub2, имеющую режим и характер класса:
Orthodont$sub2<-as.character(Orthodont$Subject)
ab <- with(Orthodont,coef(lmList(distance ~ age|sub2, data=Orthodont)))
Я получил идентичное сообщение об ошибке: sub2 не найден и предупреждение о том, что sub2 является упорядоченным фактором.
Есть идеи?