我正在尝试拟合一个类似于
fm2orth.lm<-lme(distance~age,data=OrthoFem, random=~1|Subject)
并且做了
summary(fm2Orth.lm)
我的输出有这些部分
- Aic/BIC
- 随机效应
- 固定效果表
- 相关性。
我的问题是我只对上面的第三个输出感兴趣并尝试过
fm2Orth.lm$coefficients
并且有各个科目的系数,这不是我想要的,有人可以告诉我如何只获得带有 p 值的固定效应表。
我正在尝试拟合一个类似于
fm2orth.lm<-lme(distance~age,data=OrthoFem, random=~1|Subject)
并且做了
summary(fm2Orth.lm)
我的输出有这些部分
我的问题是我只对上面的第三个输出感兴趣并尝试过
fm2Orth.lm$coefficients
并且有各个科目的系数,这不是我想要的,有人可以告诉我如何只获得带有 p 值的固定效应表。
答案很简单:
summary(fm2Orth.lm)$tTable
会给你完整的表格(不仅仅是系数)。
一般来说,使用:
names(fm2Orth.lm)
和
names(summary(fm2Orth.lm))
查看这些列表中包含哪些对象。然后你可以探索这些对象,你会经常找到你需要的东西。
编辑:由于这是在评论中提出的,并且可能对某些人有用:从这些列表中的对象中提取随机效应的方差可能很棘手。有关提取这些内容的方法,请参见此处:https ://stackoverflow.com/questions/9043565/extracting-random-effects-from-nlme-summary/9043924#9043924
lme毫不奇怪,输出的类是lme. 你可以通过运行找到它class(fm2orth.lm)。
因此,当您调用summary它时,真正调用的是summary.lme. 这个函数不是从 nlme 包中导出的(当你summary.lme在提示符下键入时你会发现这个:你会收到一条消息说找不到对象),但你仍然可以像这样找到它的源:getAnywhere("summary.lme").
您将看到摘要中的一些对象是建立起来的以及它们的名称(例如object$tTable <- ...)。您还将看到结果summary.lme是一个类对象summary.lme(同样,这并不奇怪)。
最后,您可以检查print.summary.lme, 因为printR 会自动调用它来显示最后一条语句的返回值,但就像 一样summary,它被分派到特定于类的版本。请注意,此功能不会从包中导出,因此您必须使用getAnywhere.
最后,在此函数的源代码中,您将看到一个调用,该调用cat("Fixed effects: ")显然标志着开始打印您感兴趣的信息。在那里您可以看到真正打印的 ( cat(deparse)) 基于摘要的成员call$fixed,但可能取决于原始模型的构建方式。
这应该为您提供足够的信息以了解如何获得它。
编辑:我刚刚注意到从返回的对象summary.lme实际上是原始拟合(所以lme它本身的返回值,添加了一些额外的列表项。因此,call使用的这个成员print.summary.lme已经是原始拟合的一部分(因为它不是由summary.lme) 添加的。结果:您可能并不真的需要摘要来获得固定效果。