在多个 emmeans 中使用 lapply,错误:无效的下标类型 'S4'

use lapply in multiple emmeans, error in : invalid subscript type 'S4'

lhiry1 <- lmer(ACC ~ LR1st +(1|Subject),data = learndata_long3) # hierarchy 1*
lhiry2 <- lmer(ACC ~ LR2nd +(1|Subject),data = learndata_long3) # hierarchy 2*

onelmer=c(lhiry1,lhiry2)
onelmer1=c('LR1st','LR2nd')

for (i in 1:length(onelmer))

{onelmercontr[i]=lapply(onelmer,
function(x){emmeans(onelmer[[i]], pairwise ~ onelmer1[i] , adjust ="bonf")})}

故障是:

“Error in onelmer[[x]] : invalid subscript type 'S4' Called from: is(object, "emmGrid")”

看来我的帧类型有点问题,但我找不到任何原因。 请帮我! 非常感谢!

你在做 lapply 时没有使用你迭代过的向量,你只能进行 1 次测试,lapply 不会产生结果:

lapply(onelmer,
function(x){emmeans(onelmer[[i]], pairwise ~ onelmer1[i] ...)})}

尝试下面的操作,小心检查您正在迭代的内容,并确保为它们提供更有意义的名称(而不是 onelmer1 和 onelmer...):

library(emmeans)
library(lme4)
set.seed(111)
learndata_long3 = data.frame(ACC=rnorm(100),LR1st=sample(c("a","b"),100,replace=TRUE),LR2nd = sample(c("c","d"),100,replace=TRUE),Subject = factor(rep(1:2,50)))

lhiry1 <- lmer(ACC ~ LR1st +(1|Subject),data = learndata_long3) 
lhiry2 <- lmer(ACC ~ LR2nd +(1|Subject),data = learndata_long3) 

mdls=list(lhiry1=lhiry1,lhiry2=lhiry2)
coefs=c('LR1st','LR2nd')
output= vector("list",2)

for (i in 1:length(mdls)){
output[[i]]=emmeans(mdls[[i]], 
as.formula(paste("pairwise ~",coefs[i])), 
adjust ="bonf")
}

output

[[1]]
$emmeans
 LR1st  emmean    SE   df lower.CL upper.CL
 a     -0.0836 0.150 2.73   -0.588    0.420
 b     -0.0275 0.155 3.11   -0.510    0.455

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
 contrast estimate    SE   df t.ratio p.value
 a - b     -0.0561 0.198 97.7 -0.283  0.7777 

Degrees-of-freedom method: kenward-roger 


[[2]]
$emmeans
 LR2nd emmean    SE   df lower.CL upper.CL
 c     -0.273 0.149 3.02   -0.747    0.200
 d      0.151 0.147 2.83   -0.333    0.635

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

$contrasts
 contrast estimate    SE df t.ratio p.value
 c - d      -0.424 0.192 97 -2.216  0.0290 

Degrees-of-freedom method: kenward-roger