繁体   English   中英

从 R 中的 lme4 摘要中提取一列

[英]Extract a column from lme4 summary in R

我想知道仅提取Std.Dev. (而不是像HERE那样打印)的最有效方法是什么。 下面的vc object 列作为向量?

library(lme4)
library(nlme)

data(Orthodont, package = "nlme")
fm1 <- lmer(distance ~ age + (age|Subject), data = Orthodont)

vc <- VarCorr(fm1) ## extract only the `Std.Dev.` column as a vector

'vc' 的结构表明它是一个包含单个元素 'Subject' 的list ,而 ' str ' 是一个属性

str(vc)
#List of 1
# $ Subject: num [1:2, 1:2] 6.3334 -0.3929 -0.3929 0.0569
#  ..- attr(*, "dimnames")=List of 2
#  .. ..$ : chr [1:2] "(Intercept)" "age"
#  .. ..$ : chr [1:2] "(Intercept)" "age"
#  ..- attr(*, "stddev")= Named num [1:2] 2.517 0.239  ####

所以,直接提取属性

attr(vc$Subject, "stddev")

残差标准差是一个外部属性

attr(vc, "sc")
#[1] 1.297364

如果我们将它们与c结合起来,我们会得到一个vector

c(attr(vc$Subject, "stddev"), attr(vc, "sc"))
#   (Intercept)         age             
#  2.5166317   0.2385853   1.2973640 

as.numeric/as.vector包装以删除名称,因为它是一个named向量

或者使用attributes

c(attributes(vc)$sc, attributes(vc$Subject)$stddev)

如果要列中的三个元素,可以使用:

as.numeric(c(attr(vc[[1]], "stddev"), attr(vc, "sc")))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM