我试图将结果建模为几次暴露的函数,调整可能是混杂因素的任何协变量的模型(当添加到模型时,结果系数≥10%Δ)。我正在将许多协变量视为潜在的混淆因素,因此创建了一个包含所有这些数据框的数据框并使用了lapply(结果和曝光位于已经附加的单独数据框中)。为了更容易地对我的所有输出进行排序,我试图编写一个函数,只有在协变量是混淆时才会显示输出。它们的曝光和数量在每个模型中都是不同的,所以我发现每次运行分析时都必须编写类似于下面的代码,但是知道必须有一个更简单的方法。我是否可以使用没有混淆器的模型和Covariates数据框作为参数来编写一个函数?谢谢!
lapply(Covariates, function(x) {
model <- summary(lm(Outcome ~ Exposure1 + Exposure2 + ... + x))
if ((model$coefficients[2, 1] - summary(lm(Outcome ~ Exposure))$coefficients[2, 1])/
model$coefficients[2, 1] >= .1)
return(model)
})
答案 0 :(得分:1)
我写了一个函数来解决这个问题!
D
然后我将此函数提供给模型:
confounder <- function(model) {
model.sum <- summary(model)
model.b <- model.sum$coefficients[2, 1]
oldmodel <- update(model, . ~ . -x)
oldmodel.sum <- summary(oldmodel)
oldmodel.b <- oldmodel.sum$coefficients[2, 1]
model.frame <- tidy(model.sum)
model.sub <- subset(model.frame, term = "x")
model.sub.b <- model.sub[, 5]
if ((model.b - oldmodel.b)/model.b >= .1 |
model.sub.b < .05)
return(model.sum)
}