如何在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
相关产品推荐
相关产品推荐

