У меня есть список из более чем 100 моделей SEM, рассчитанных за lavaan
. В этом примере я буду использовать только две модели:
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(fit.model1.cfa, fit.model2.cfa)
Я хочу провести апостериорный анализ мощности на своих моделях, и для этой цели я использую следующий цикл for
:
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
. Я пробовал следующее:
models %>%
map(., sim, nRep = 1000, model = ., n = pluck(pluck(., "SampleStats"), "ntotal"), generate = .) %>%
map(getPower)
Однако это не работает. Так что я делаю не так?
sim
? - person rdornas   schedule 24.02.2020simsem
- person J. Doe   schedule 24.02.2020