在R中使用sim函数时,结果对象中的复制不是收敛错误

问题描述

我收到错误消息“ clean(simResult)中的错误:结果对象中的所有复制未收敛。因此,无法使用结果对象。”我已经尝试过R版本4.0.2和4.0.3。我调高了复制数量并更改了效果大小,但遇到了同样的错误。下面是参考代码。我不确定这是本地错误还是“ simsem”软件包有问题,有什么想法吗?

effectSizes <- c(.1,.3,.5)

modelEffects <- expand.grid(effectSizes,effectSizes,effectSizes)
names(modelEffects) <- c('a','b','c')

models <- modelEffects %>%
    rowwise() %>%
    do({
        genModel <- paste0('# direct effect
                           Y ~ ',.$c,'*X
                           # mediator
                           M ~ ',.$a,'*X
                           Y ~ ',.$b,'*M
                           X ~~ 1*X
                           Y ~~ 1*Y
                           M ~~ 1*M
                           ')
        testModel <-'# direct effect
                    Y ~ c*X
                    # mediator
                    M ~ a*X
                    Y ~ b*M
                    # indirect effect (a*b)
                    ab := a*b
                    # total effect
                    total := c + (a*b)
                    '
        data.frame(a=.$a,b=.$b,c=.$c,gen=genModel,test=testModel,stringsAsFactors=F)
    })
#############################################################################

REDOSims=T #Set REDOSims = T for the first time executing and F for future iterations. 
if(REDOSims){
    allModelPowerSim <- models %>%
        rowwise() %>%
        do({
            manySims <- sim(NULL,model=.$test[1],n=50:700,generate=.$gen[1],lavaanfun='sem',multicore=T) 
            data_frame(a=.$a,powersims=list(manySims))
        })
        #save the above
        saveRDS(allModelPowerSim,'power_simulations.RDS')
} else {
    #load the above
    allModelPowerSim <- readRDS('power_simulations.RDS')
}
################################################################################

powerData <- allModelPowerSim %>% rowwise() %>%
    do({
        aSimPower <- as.data.frame(getPower(.$powersims,nVal=seq(50,700,5),powerParam='ab'))
        data_frame(a=.$a,alab=paste0('a=',.$a),blab=paste0('b=',.$b),clab=paste0('c=',.$c),N=aSimPower[,1],ab=aSimPower[,2])
    })

print(powerData)

clean(simResult)中的错误:结果对象中的所有复制都不收敛。因此,结果对象无法使用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)