У меня есть список из более чем 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)
Я хочу провести post-ho c анализ мощности на моих моделях, и для этой цели я использую следующий for
l oop:
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
l oop и вместо этого использовать функцию map
. Я пробовал следующее:
models %>%
map(., sim, nRep = 1000, model = ., n = pluck(pluck(., "SampleStats"), "ntotal"), generate = .) %>%
map(getPower)
Однако это не работает. Так что я делаю не так?