6

在 R 的 nlme 包中 lme() 函数的标准示例中:

fm2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1)
summary(fm2)

出现一个相关表:

Correlation: 
          (Intr) age   
age       -0.813       
SexFemale -0.372  0.000

如果涉及许多因素组合,这可能是巨大的。

有什么方法可以抑制摘要命令中的输出?我知道我可以使用

   print(fm2, cor=F) 

但这并没有向我显示其余的通常输出,例如没有 p 值计算。

4

3 回答 3

4

看着nlme:::print.summary.lme我看不到抑制相关矩阵打印的方法(尽管您可以创建该函数的破解版本,删除if子句开头if (nrow(x$tTable)>1)...)

也许能够打印固定效应参数的摘要对您有用...?

 printCoefmat(summary(fm2)$tTable)
于 2013-05-13T12:13:31.483 回答
3

或者,更简洁地说,summary(fm2)$tTable

于 2013-06-21T03:51:22.720 回答
3

我最近在拟合具有许多固定效果的模型时遇到了同样的问题,并且相关表很大并且确实使输出变得混乱。查看print.summary.lme()(未导出,因此您必须使用nlme:::print.summary.lme)表明该部分来自以下行:

if (nrow(x$tTable) > 1) {
    corr <- x$corFixed
    class(corr) <- "correlation"
    print(corr, title = " Correlation:", ...)
}

正如本已经指出的那样。除了重写/替换整个函数,我们还可以使用一个简单的技巧,用nlme:::print.correlation我们自己print的类对象方法替换(这实际上是打印相关矩阵) correlation。这可以通过以下方式完成:

assignInNamespace("print.correlation", function(x, title) return(), ns="nlme")

现在将省略相关矩阵,但您会得到剩余的输出。

于 2015-08-07T13:33:33.873 回答