首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在地图中使用simsem

在地图中使用simsem
EN

Stack Overflow用户
提问于 2020-02-24 00:38:56
回答 1查看 76关注 0票数 0

我有一个清单100多个扫描电镜模型计算在lavaan。对于这个例子,我只使用两个模型:

代码语言:javascript
复制
fit.model1.cfa <- '
    ind60 =~ x1 + x2 + x3
    dem60 =~ y1 + y2 + y3 + y4
    dem65 =~ y5 + y6 + y7 + y8
    ind60 ~~ ind60
    dem60 ~~ dem60
    dem65 ~~ dem65' %>%
       sem(PoliticalDemocracy)

fit.model2.cfa <- '
    ind60 =~ x1 + x2
    dem60 =~ y1 + y2 + y3
    dem65 =~ y5 + y6 + y7
    ind60 ~~ ind60
    dem60 ~~ dem60
    dem65 ~~ dem65' %>%
       sem(PoliticalDemocracy)

模型到底是什么并不那么重要。现在,我们将加入他们的名单:

代码语言:javascript
复制
models <- list(fit.model1.cfa, fit.model2.cfa)

我想对我的模型进行事后权力分析,为此,我使用了以下for循环:

代码语言:javascript
复制
pwr <- list()

for(i in 1:2){
   sim(nRep = 1000, model = models[[i]], n = models[[i]]@SampleStats@ntotal, generate = models[[i]]) %>%
       getPower() -> pwr[[i]]
}

但是,我想避免使用for循环,而是使用map函数。我尝试了以下几点:

代码语言:javascript
复制
models %>%
   map(., sim, nRep = 1000, model = ., n = pluck(pluck(., "SampleStats"), "ntotal"), generate = .) %>%
   map(getPower)

然而,这是行不通的。那我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-24 02:02:49

这是我第一次听说lavaansimsem和它的模型,但我试图帮助您学习咕噜 map。我用nRep = 10做了一个简单的解决方案,只是为了测试,您可以用nRep = 1000复制它。此外,还返回了许多警告和进度,但为了保持清洁,我在下面的示例中删除了它们。

代码语言:javascript
复制
library(tidyverse, verbose = F)
library(lavaan)
library(simsem)

fit.model1.cfa <- '
    ind60 =~ x1 + x2 + x3
    dem60 =~ y1 + y2 + y3 + y4
    dem65 =~ y5 + y6 + y7 + y8
    ind60 ~~ ind60
    dem60 ~~ dem60
    dem65 ~~ dem65' %>%
  sem(PoliticalDemocracy)

fit.model2.cfa <- '
    ind60 =~ x1 + x2
    dem60 =~ y1 + y2 + y3
    dem65 =~ y5 + y6 + y7
    ind60 ~~ ind60
    dem60 ~~ dem60
    dem65 ~~ dem65' %>%
  sem(PoliticalDemocracy)

models <- list(model1 = fit.model1.cfa, model2 = fit.model2.cfa)


power <- map(models, function(x){

  n <- x@SampleStats@ntotal

  z <- sim(model = x, nRep = 10, n = n, generate = x)

  getPower(z)

})

power

#> $model1
#>    ind60=~x2    ind60=~x3    dem60=~y2    dem60=~y3    dem60=~y4    dem65=~y6 
#>          1.0          1.0          1.0          1.0          1.0          1.0 
#>    dem65=~y7    dem65=~y8 ind60~~ind60 dem60~~dem60 dem65~~dem65       x1~~x1 
#>          1.0          1.0          1.0          1.0          1.0          1.0 
#>       x2~~x2       x3~~x3       y1~~y1       y2~~y2       y3~~y3       y4~~y4 
#>          0.5          1.0          1.0          1.0          1.0          1.0 
#>       y5~~y5       y6~~y6       y7~~y7       y8~~y8 ind60~~dem60 ind60~~dem65 
#>          1.0          1.0          1.0          1.0          1.0          1.0 
#> dem60~~dem65 
#>          1.0 
#> 
#> $model2
#>    ind60=~x2    dem60=~y2    dem60=~y3    dem65=~y6    dem65=~y7 ind60~~ind60 
#>          1.0          1.0          1.0          1.0          1.0          1.0 
#> dem60~~dem60 dem65~~dem65       x1~~x1       x2~~x2       y1~~y1       y2~~y2 
#>          1.0          1.0          0.4          0.4          0.8          1.0 
#>       y3~~y3       y5~~y5       y6~~y6       y7~~y7 ind60~~dem60 ind60~~dem65 
#>          1.0          1.0          1.0          1.0          0.9          1.0 
#> dem60~~dem65 
#>          1.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60368270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档