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

如何在glht结果中显示精确p值而非<0.001***?

如何显示glht多重比较的精确p值?

问题背景

我进行了logistic回归与多重比较,代码如下:

library(lme4)
model <- glmer(y ~ Genger + Age + subject +
    (1 | ParticipantID), data = data, family = binomial(link = "logit"))

library(multcomp)
multicomp <- glht(model, mcp(Behavior="Tukey"))
summary(multicomp)

输出结果为:

Estimate  Std. Error  z value Pr(>|z|)    
subject2 - subject1 ==  0 -2.19503726  0.66179761 -2.89596  < 0.001 ***

尝试使用options(digits=10)后输出无变化,希望显示精确的p值而非< 0.001***。

解决方法

  • 直接调整summary的显示精度:summary.glht()有独立的digits参数,全局的options(digits)不会影响它,需要在调用summary时指定:

    summary(multicomp, digits = 10)
    
  • 提取p值手动打印:从结果对象中直接提取p值向量,用print()指定显示精度:

    p_vals <- summary(multicomp)$test$pvalues
    print(p_vals, digits = 10)
    
  • 用broom包格式化结果:将多重比较结果转换为数据框,完整保留精确p值:

    library(broom)
    # 生成包含精确p值的结构化结果
    tidy(multicomp, conf.int = TRUE)
    
  • 修改multcomp打印选项:设置包级选项强制显示完整p值:

    options(multcomp.print.tables = TRUE)
    print(summary(multicomp), digits = 10)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:08:29