Я пытаюсь запустить многоуровневые модели по ряду переменных. У меня есть два списка переменных - результат и ответ. С чем я сталкиваюсь, так это с установкой команды lapply для параллельного запуска каждого элемента списка. Таким образом, первый элемент списка «результат» запускается одновременно с первым элементом списка «ответ». Затем для второго элемента списка «результат» вызывается второй элемент списка «ответ».
Мне удалось объединить 2 команды lapply, но это дает мне каждую комбинацию каждого элемента из списка результатов и ответов, что не идеально. Я могу вручную извлечь нужные элементы, но есть ли другой способ добиться этого?
#Define random intercept
random_intercepts <- "(1|clusters)"
#For each of the 4 outcome variables, define the response variables
water_imp_vars <- c("fish_factor", "num_childrenunder5", "quintile_nowashnomat_fac")
less5_vars <- c("fish_factor", "num_hh_members", "num_childrenunder5")
san_imp_vars <- c("fish_factor", "num_hh_members", "num_childrenunder5", "quintile_nowashnomat_fac")
housing_imp_vars <- c("fish_factor","num_hh_members", "num_childrenunder5", "quintile_nowashnomat_fac")
#Combine all repsonse variables into 1 list
all_response <- list(water_imp_vars, less5_vars, san_imp_vars, housing_imp_vars)
#List of outcomes
outcomes <- c("water_imp", "less_than_5", "san_imp", "housing_imp")
all_models <- lapply(setNames(outcomes, outcomes), function(var) {
lapply(all_response, function(var2) {
fixed <- paste0(var2, collapse= "+")
formula <- as.formula(paste(var, "~", fixed, "+", random_intercepts))
glmer(formula, hr_analysis_dataset, family='binomial', nAGQ = 0)
})
})
Вот некоторые выходные данные из переменной all_models.
$water_imp
$water_imp[[1]]
water_imp ~ fish_factor + num_childrenunder5 + quintile_nowashnomat_fac +
(1 | clusters)
<environment: 0x0000000017ecdd58>
$water_imp[[2]]
water_imp ~ fish_factor + num_hh_members + num_childrenunder5 +
(1 | clusters)
<environment: 0x0000000017ed1858>
$water_imp[[3]]
water_imp ~ fish_factor + num_hh_members + num_childrenunder5 +
quintile_nowashnomat_fac + (1 | clusters)
<environment: 0x0000000017ed5f20>
$water_imp[[4]]
water_imp ~ fish_factor + num_hh_members + num_childrenunder5 +
quintile_nowashnomat_fac + (1 | clusters)
<environment: 0x0000000017ed86a0>
Меня интересует только первая комбинация для первой переменной результата -
water_imp ~ fish_factor + num_childrenunder5 + quintile_nowashnomat_fac +
(1 | clusters)
, а затем для второй переменной результата, меня интересует вторая комбинация
less_than_5 ~ fish_factor + num_hh_members + num_childrenunder5 +
(1 | clusters)
Хотя для получения правильной комбинации не так много работы, я также планирую провести этот анализ для ряда стран, поэтому эта проблема будет продолжать расти после добавления дополнительных уровней.
Любая помощь будет очень ценится