Мне было интересно, кто-нибудь может дать мне подсказку о том, что я здесь делаю неправильно.
Я создал функцию, которая содержит al oop, в которой я перебираю вектор переменных (мои IV), для которых я хочу проверить, имеют ли они косвенный эффект (через моего посредника) на моей зависимой переменной. Я делаю это с помощью пакета «Посредничество». В thel oop я пытаюсь сохранить результат каждого теста посредничества ("objects_main") и сводку этого объекта ("results_main") как элемент двух отдельных списков.
Это код:
#create list to store results
objects_main <- rep(list(NA), times = 36)
results_main <- rep(list(NA), times = 36)
#iterate through all IVs and store results in a list (named after effect)
for(i in 1:length(all_ivs)){
objects_main[[i]] <- mediation::mediate(model.m = model_m,
model.y = model_y,
treat = all_ivs[i],
mediator = mediator,
vcov = vcovHC(model.m & model.y, "HC3"))
results_main[[i]] <- summary(mediation::mediate(model.m = model_m,
model.y = model_y,
treat = all_ivs[i],
mediator = mediator,
vcov = vcovHC(model.m & model.y, "HC3")))
names(objects_main[[i]]) <- all_ivs[i]
names(results_main[[i]]) <- all_ivs[i]
}
#output
output <-
list(
"objects_main" = objects_main,
"results_main" = results_main)
Проблема, с которой я сталкиваюсь, заключается в том, что хотя список «objects_main» прекрасно хранит все объекты-посредники, я получаю следующую строку ошибки, если пытаюсь получить доступ к сводке результаты (например, функция $ results_main [1]; здесь «функция» - это объект, в котором я сохранил результаты всей функции):
[[1]]
Causal Mediation Analysis
Error in if (x$boot) { : argument is of length zero
Я также пробовал несколько вариантов второй части l oop, но ничего из этого не сработало:
#Instead of
results_main[[i]] <- summary(mediation::mediate(model.m = model_m,
model.y = model_y,
treat = all_ivs[i],
mediator = mediator,
vcov = vcovHC(model.m & model.y, "HC3")))
#I also did
results_main[[i]] <- mediation:::summary.mediate(objects_main[[i]])
results_main[[i]] <- summary(objects_main[[i]])
Кто-нибудь видит, что мне здесь не хватает?
Большое спасибо за вашу помощь!
Редактировать: Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, или я не совсем понимаю, что кажется вам важным! Я был бы рад предоставить все, что вам нужно.