微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 huxtable::huxreg() 中使用自定义的 `glance` 方法

如何解决在 huxtable::huxreg() 中使用自定义的 `glance` 方法

我正在寻找一种方法,使用 huxtable::huxreg 创建一个使用 lmer() 预测的多级模型的结果表,同时报告组数和观察数。我可以编写一个自定义概览方法来覆盖 glance.merMod 包中的 broom.mixed 方法,该方法在从 R 调用时有效,但在调用 huxreg() 时不起作用。

我认为问题在于 huxreg 函数broombroom.mixed 作为必需的命名空间 inside the function 导入。

使用自定义概览方法(或简单地向现有 huxtables 添加行以外的替代方法)克服此问题的最佳方法是什么?

这是一个 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,tau),each = 10) + rnorm(100,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

解决方法

您可以使用 dat <- structure(list(id = c(1L,1L,2L,3L),value = c("age","","gender","")),class = "data.frame",row.names = c(NA,-6L)) 解决此问题:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。