You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用missRanger、glht、pool及tidy函数时出现新错误求助

问题根源

这个错误是由于broom.mixed、mice或multcomp包的版本更新导致的——2024年10月之后的版本中,pool()处理glht对象生成的结果结构发生了变化,当调用tidy(conf.int = TRUE)时,函数尝试合并的不同数据成分(比如系数估计值、置信区间)行数不匹配(一个是3行,一个是0行),触发了数据框合并的行数错误。该问题同时影响glm()和glmmTMB()模型,属于跨模型类型的工具链兼容性问题。

解决办法

1. 回滚到兼容版本

回滚到2024年10月之前的broom.mixed版本(比如v0.2.9.4),这个版本可以正确处理pool()后的glht对象:

# 检查当前版本
packageVersion("broom.mixed")

# 安装旧版(需先安装devtools包)
install.packages("devtools")
devtools::install_version("broom.mixed", version = "0.2.9.4", repos = "http://cran.us.r-project.org")

如果回滚后仍有问题,可同时检查并回滚mice或multcomp到2024年10月之前的版本。

2. 手动构建整洁表格(绕过broom.mixed)

直接从pool()后的glht对象中提取数据,手动组装整洁表格:

# 假设已完成插补、建模、glht和pool步骤,得到pooled_glht对象
# 提取核心统计量
pooled_coef <- coef(pooled_glht)
pooled_se <- sqrt(diag(vcov(pooled_glht)))
pooled_ci <- confint(pooled_glht)
pooled_p <- summary(pooled_glht)$test$pvalues

# 构建整洁表格
tidy_result <- data.frame(
  term = names(pooled_coef),
  estimate = round(pooled_coef, 3),
  std.error = round(pooled_se, 3),
  conf.low = round(pooled_ci[, 1], 3),
  conf.high = round(pooled_ci[, 2], 3),
  p.value = round(pooled_p, 3)
)

print(tidy_result)

3. 提交bug报告(针对最新版本)

如果需要使用包的最新功能,可前往broom.mixed的GitHub仓库提交bug报告,附上你的mtcars复现代码、包版本信息及错误日志,帮助开发者修复兼容性问题。


内容的提问来源于stack exchange,提问作者Tyler Lane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:36:04