【发布时间】:2020-05-21 03:16:22
【问题描述】:
我想知道从下面的vc 对象中仅提取Std.Dev. 列作为向量的最有效方法是什么?
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
【问题讨论】:
-
如果选中
getAnywhere("as.data.frame.VarCorr.merMod"),它正在提取组件以创建data.framevcov <- c(diag(v), v[lt.v <- lower.tri(v, diag = FALSE)]);sdcor <- c(attr(v, "stddev"), attr(v, "correlation")[lt.v]) -
它在内部在代码中做同样的事情
r <- rbind(r, data.frame(grp = "Residual", var1 = NA, var2 = NA, vcov = ss^2, sdcor = ss)。因此,提取 sd 并执行^而不是遍历 as.data.frame 并执行您可能不需要的所有步骤可能是有效的
标签: r dataframe extract lme4 nlme