从 mer 对象中提取观察次数和随机效应模式

Rob*_*ong 3 r random-effects lmer

我有一个mer创建的对象,调用 to lmer()

我可以获得随机效应,ranef()但我也希望每个随机效应都有相应数量的观察 - 有没有简单的方法来做到这一点?

附加信息:

上面我可能没有说清楚。举例来说,如果我有医院和随机拦截医院内聚集病人简单的2级车型,我想提取每个医院随机效应ranef() 一起与患者各医院内的号码。目前,我使用

ranef(fullmodel)[[1]]
Run Code Online (Sandbox Code Playgroud)

这给了我类似的东西:

     (Intercept)
ADE -0.108195883
BEJ -0.005761677
CIS  0.124129426
CMH  0.270879048
CSI  0.285344837
CUL  0.189308979
Run Code Online (Sandbox Code Playgroud)

我想得到类似的东西:

     (Intercept)  n
ADE -0.108195883  77
BEJ -0.005761677  171
CIS  0.124129426  201
CMH  0.270879048  39
CSI  0.285344837  171
CUL  0.189308979  131
Run Code Online (Sandbox Code Playgroud)

为此,我一直在使用

fullmodel <- glmer(.....+(1|hospital), data=dt1)

freqs <- as.data.frame(table(dt1$hospital))
freqs <- freqs[foo$Freq>0,]
Run Code Online (Sandbox Code Playgroud)

然后cbind将其添加到结果中ranef(fullmodel)[[1]]

然而,这似乎并不复杂并且容易出错。

Ben*_*ker 5

ranef返回与分组因子对应的矩阵列表,其中每个矩阵中的行对应于随机效应的观测值(因子水平),列对应于随机效应变量(截距、斜率等)。因此,获得观察次数的最简单方法是

sapply(ranef(model),nrow)
Run Code Online (Sandbox Code Playgroud)