2013-05-13 67 views
5

在R的NLME包的LME()函數的標準例如:如何抑制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值計算的其餘部分。在nlme:::print.summary.lme

回答

2

看我看不到的方式來抑制相關矩陣打印(儘管你可以創建功能刪除的if條款開始if (nrow(x$tTable)>1)的破解版...)

也許這將是有益的給你能打印只是固定效果參數的總結......?

printCoefmat(summary(fm2)$tTable) 
+0

謝謝,這有助於(一點)。對不起,遲到upvote,我分心。 – Jens 2013-06-23 17:52:06

2

或者,更簡潔,summary(fm2)$tTable

2

我剛剛遇到同樣的問題,當擬合模型有很多的固定效應和相關表是巨大的,真的堆滿了輸出。縱觀print.summary.lme()(這是不出口,所以你必須使用nlme:::print.summary.lme)表明,一部分來自這些行:

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

如已經指出本。我們也可以使用一個簡單的技巧,用我們自己的print方法替代correlation類的對象來代替nlme:::print.correlation(這就是實際進行相關矩陣打印的內容),而不是重寫/替換整個函數。這可以通過以下方式完成:

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

現在相關矩陣將被省略,但您會得到剩餘的輸出。