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]]
然而,这似乎并不复杂并且容易出错。
ranef返回与分组因子对应的矩阵列表,其中每个矩阵中的行对应于随机效应的观测值(因子水平),列对应于随机效应变量(截距、斜率等)。因此,获得观察次数的最简单方法是
sapply(ranef(model),nrow)
Run Code Online (Sandbox Code Playgroud)