我需要运行多元逻辑回归,每次只有一个预测变量发生变化(其他协变量保持不变)。我尝试在 R 中使用 for 循环。
我收到这条我不明白的错误信息:
Error in model.frame.default(formula = VD ~ v + covar1 + covar2 + covar3, :
variable lengths differ (found for 'v')
这是我的代码(实际上,我有 3 个以上的变量要建模,但假设我只有 3 个):
var_list <- c("var1", "var2", "var3")
mydata$covar3 <- factor(mydata$covar3)
for (v in var_list) {
results <<- glm (VD ~ v + covar1 + covar2 + covar3,
data = mydata, family = "binomial")
}
我检查了每个变量的长度是否相同(原来如此!)。
只有 covar3 是分类的; covar1 和 covar2 是数值变量。
当我在循环外运行相同的代码时,比如仅针对 var1,一切正常。我的循环是如何产生这个问题的?
在此先感谢您的帮助
当我们在 R 中进行回归时,如果我们有一个分类预测变量,通常我们不必调整不同的模型。所以,试试:
results <- glm (VD ~ v + covar1 + covar2 + covar3, data = mydata, family = "binomial")