r - 在格中绘制选定的随机效应观测值
问题描述
我试图仅从我的随机效应模型中绘制某些观察结果(因为实际数据集有很多观察结果)。
下面是一个分析示例:
# Load packages
library(lme4)
library(lattice)
# Load sleep data
data(sleepstudy)
# Model
fit <- lmer(Reaction ~ Days + (1 + Days|Subject), data = sleepstudy)
# Plot random effects
dotplot(ranef(fit, condVar = T))
情节如下所示:
如果我只想绘制主题 337、310、333 和 349 的结果怎么办?
我已经尝试保存ranef()
结果,选择感兴趣的主题,然后从那里构建一个情节,但这不会奏效,因为我会丢失错误栏。
解决方案
我们需要操纵ranef.mer
对象。
library(lme4)
library(lattice)
data(sleepstudy)
fit <- lmer(Reaction ~ Days + (1 + Days|Subject), data=sleepstudy)
首先,我们存储它。
r.int <- ranef(fit, condVar=TRUE)
其次,我们创建所需子集行号的向量。
s <- c(337, 310, 333, 349)
第三,在lapply
函数内部,我们在列表中子集,data.frame
重要的是属性,其中方差隐藏在数组中。
r.int <- lapply(r.int, function(x) {
s2 <- which(rownames(x) %in% s)
x <- x[s2, ]
attributes(x)$postVar <- attributes(x)$postVar[, , s2]
return(x)
})
第四,我们破解所需的类标签。
class(r.int) <- "ranef.mer"
等等,我们终于可以绘制出我们想要的选择了。
dotplot(r.int)
推荐阅读
- angular - 图标的角度插值不适用于字体真棒
- ios - 来自部署在设备上的应用程序的 iOS os.log
- c++ - 创建二维数组类:如何访问二维数组类中的元素,如 array[x][y]
- git - 从 gerrit 克隆存储库有时会失败
- git - 如何在不使用 Git 将更改推送到远程存储库的情况下将更改提交到本地存储库
- javascript - web3.js 使用 PHP 解密密钥库 v3
- mysql - Mysql返回错误记录——聚合函数MAX()
- c++ - 如何在 QProcess 中传递/发送 control-c
- angular - 为什么我的输入属性绑定不起作用?- 角
- javascript - 将数字转换为日期的时刻