Функция printCoefmat() возвращает ошибку

#r #lme4 #model-fitting

Вопрос:

Я построил следующую модель

 model2 lt;- lmerTest::lmer(LPP2POz ~ 1   COND   (1|ID), data = dataLPP2POz)  

Если я попытаюсь запустить следующую функцию, она вернет эту ошибку:

 printCoefmat(summary(model2)$tTable,   has.Pvalue = T, P.values = T)  

Вот краткий кадр данных из набора данных, над которым я работаю

 dput(head(dataLPP2POz)) structure(list(ID = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("01",  "04", "06", "07", "08", "09", "10", "11", "12", "13", "15", "16",  "17", "18", "19", "21", "22", "23", "25", "27", "28", "30", "44",  "46", "49"), class = "factor"), GR = c("RP", "RP", "RP", "RP",  "RP", "RP"), SES = c("V", "V", "V", "V", "V", "V"), COND = structure(c(1L,  2L, 3L, 1L, 2L, 3L), .Label = c("NEG-CTR", "NEG-NOC", "NEU-NOC" ), class = "factor"), LPP2POz = c(7.91468942320841, 9.94838815736199,  10.2186482048953, 1.07455889922813, 1.65917850515029, 3.22422743232682 )), row.names = c(NA, 6L), class = "data.frame")  Error in printCoefmat(summary(model2)$tTable, has.Pvalue = T, P.values = T) :   'x' must be coefficient matrix/data frame  

Кто-нибудь в состоянии понять, в чем заключается ошибка?

Комментарии:

1. Если я побегу summary(model2)$tTable , то попаду NULL . Может быть, вы имели в виду summary(model2)$coefficients ?

2. Точно!! Это тот результат, который я искал. Материалы, с которыми я ознакомился, сообщали об этом планшете и не обновлялись.

Ответ №1:

Немного развивая и уточняя комментарии @aosmith.

Извлечение таблицы коэффициентов работает по-разному для разных пакетов со смешанной моделью. Более новое значение по умолчанию (которое работает для lme4 , lmerTest , glmmTMB ) заключается в том, что таблицу коэффициентов можно извлечь как summary(model)$coefficients (под капотом это означает, что summary() метод возвращает список с таблицей коэффициентов, сохраненной в качестве элемента $coefficients ). Для этих пакетов coef(summary(model)) это еще лучшая практика.

Для объектов из nlme пакета (т. Е. lme ) сводная таблица хранится как summary(model)$tTable (это прискорбно, но nlme она старше, чем сама R …

Это не дает точно таких же результатов , как printCoefmat , но вы также можете изучить некоторые варианты красивой печати выходных broom.mixed::tidy() данных, целью которых является создание уровня совместимости, чтобы вам не нужно было запоминать все это …

Комментарии:

1. Спасибо за полный ответ, который вы опубликовали. Действительно, синтаксис модели в материале, с которым я ознакомился, был сформулирован функцией nlme::lme4 (). Вот почему в этом примере была представлена таблица TTable. Если вы считаете, что это окажется полезным для других пользователей, я приглашаю проголосовать за этот вопрос, если вы согласны. Спасибо 🙂