我已经围绕中介程序包中的中介函数编写了一个INSERT INTO Table_1 (column_1, column_2, column_3)
SELECT column_1, column_2, column_3
FROM Table_2
WHERE (Condition)
循环,以使用具有处理变量“ treat”的中介程序i测试所有结果变量j。如果我手动选择结果和介体,则该函数将起作用,并使用for
删除不匹配的观察值,但是在for循环中它无法执行操作,所以会出现错误:
dropobs = T
循环:
Error in mediate(model.M, model.Y, treat = e$treat, mediator = e[, i], : number of observations do not match between mediator and outcome models
我尝试添加for (i in mediator)
{ for (j in outcome)
{
model.Y <- lm(e[ ,j] ~ e$treat + e[, i], data=e)
model.M <- lm(e[, i] ~ e$treat, data=e)
results <- mediate(model.M, model.Y, treat= "treat", mediator= i,
boot=F, sims=1000, dropobs = T, control.value = "No", treat.value = "Yes")
}
}
和data=e
,因为这似乎有助于手写功能。
我会喜欢一些方便的技巧来尝试使其正常工作吗?
编辑:可复制的示例
e$