#r #lme4 #broom #huxtable
Вопрос:
Я ищу способ сообщить о количестве групп наряду с количеством наблюдений, используя huxtable::huxreg
для создания таблицы результатов многоуровневой модели lmer()
, предсказанной с. Я могу написать пользовательский метод просмотра, который перезаписывает glance.merMod
метод из broom.mixed
пакета, который работает при вызове из R, но не работает при вызове huxreg()
.
Я считаю, что проблема в том, что функция huxreg импортирует как broom
пространства имен, так и broom.mixed
необходимые пространства имен внутри функции.
Каков был бы лучший способ преодолеть эту проблему, чтобы использовать пользовательский метод просмотра (или альтернативу, отличную от простого добавления строк в существующие таблицы хакстейбла)?
Вот MWE
library(lme4)
library(tibble)
library(huxtable)
library(broom.mixed)
## Simulate multilevel data
sigma <- 0.5
tau <- 0.1
x <- rnorm(100)
w <- rep(rnorm(10), each=10); i <- factor(rep(1:10, each=10))
y <- x w rep(rnorm(10, 0, tau), each = 10) rnorm(100, 0, sigma)
d <- tibble(y, x, w)
m <- lmer(y ~ x w (1|i), data=d)
## Custom glance method
glance.merMod <- function(x, ret=tibble::tibble_row()) {
ret$nobs <- nobs(x)
ret$ngrps <- summary(x)$ngrps
return(ret)
}
glance(m) ## Works, returns nobs and ngrps
huxreg(m, statistics = c("nobs", "ngrps")) ## Doesn't work, ngrps missing
Комментарии:
1. Возможно, вам захочется взглянуть на
tidy_override
.
Ответ №1:
Вы можете исправить это с помощью tidy_override()
:
m2 <- tidy_override(m,
glance = list(
ngrps = summary(m)$ngrps
),
extend = TRUE
)
huxreg(m2, statistics = c("nobs", "ngrps"))
─────────────────────────────────────────────────
(1)
─────────────────────────
(Intercept) 0.027
(0.064)
x 0.916
(0.063)
w 0.982
(0.075)
sd__(Intercept) 0.096
(NA)
sd__Observation 0.561
(NA)
─────────────────────────
nobs 100
ngrps 10.000
─────────────────────────────────────────────────
*** p < 0.001; ** p < 0.01; * p < 0.05.
Вы, вероятно, также захотите позвонить set_number_format
по ngrps
мобильному телефону.
Комментарии:
1. Ааа, спасибо тебе! Я не добавлял эту
extend
опцию, вот почему я не мог приступитьtidy_override()
к работе. Я ценю ваш пример!2. (Кстати, в конце команды huxreg отсутствуют близкие родственники-я пытался отредактировать, но не смог)