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

R语言lme4包lmer模型调用printCoefmat函数报错原因排查

报错原因

你调用的$tTable是nlme包中lme()模型拟合后summary结果的系数矩阵专属字段,而你当前使用的是lme4包的lmer()函数,其返回的summary结果中不存在tTable这个元素,因此summary(model2)$tTable的结果为NULL,传入printCoefmat()时不符合"系数矩阵/数据框"的输入要求,触发报错。
额外说明:默认情况下lme4::lmer的summary结果的系数矩阵$coefficients仅包含估计值、标准误、t值三列,没有p值列,直接调用printCoefmat开启P.values参数也无法输出p值。

解决方法

方案1:使用lmerTest包获得带p值的系数表(最简便)

lmerTest包完全兼容lme4的语法,拟合模型后会自动在系数表中补充基于Satterthwaite法计算的p值,代码示例如下:

# 未安装包先运行 install.packages("lmerTest")
library(lmerTest)
# 拟合模型,语法和lme4的lmer完全一致
model2 <- lmer(metric ~ treatment + (1 | participant), data = data_metrics)
# 调用正确的系数矩阵字段打印
printCoefmat(summary(model2)$coefficients, 
             has.Pvalue = TRUE, P.values = TRUE)

方案2:仍使用lme4包,手动获取系数矩阵

如果你不需要p值,或者要自行计算p值,可以直接提取lme4默认的系数矩阵:

# 直接打印默认的三列系数表
printCoefmat(summary(model2)$coefficients)
# 如果需要p值,可配合car包的Anova函数输出检验结果
library(car)
Anova(model2, test.statistic = "F")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:45:04