为何打印R语言lm对象时仅显示call和coefficients少量组件?
问题原因解释
这是R语言S3面向对象系统的默认设计导致的,具体逻辑如下:
- 你用
lm()拟合得到的回归结果是S3类对象,类属性固定为lm - 当你直接在控制台输入对象名(比如示例中的
a)时,R会自动调度该类对应的print()方法,也就是print.lm() - R官方在设计
print.lm()方法时,默认只输出用户最常关注的call(调用语句)和coefficients(回归系数)两项内容,目的是避免控制台一次性输出过多冗余信息——lm对象还包含残差、拟合值、QR分解结果、模型矩阵等十余个附属元素,全部打印会占据大量屏幕空间,反而影响常用信息的读取效率。
扩展使用提示
- 如果你想查看lm对象包含的所有元素结构,可以运行
str(a) - 如果你想查看包含显著性检验、拟合优度在内的完整回归统计结果,可以运行
summary(a) - 你也可以直接通过
$符号提取任意你需要的元素,比如示例中提到的残差用a$residuals即可提取

内容的提问来源于stack exchange,提问作者Xin Luo
相关产品推荐
相关产品推荐

