Использование пользовательского метода » взгляда` в huxtable::huxreg()

#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 отсутствуют близкие родственники-я пытался отредактировать, но не смог)