R:每个变量的回归取决于​​所有其他变量

时间:2014-03-16 12:25:35

标签: r dataframe multinomial

R中,我有以下data.frame

df <- data.frame(var1,var2,var3)

我希望为每个变量提供一个回归函数,如multinom,而不是明确地使用变量名。换句话说,我想获得这个结果:

fit1 <- multinom(var1 ~ ., data=df)
fit2 <- multinom(var2 ~ ., data=df)
fit3 <- multinom(var3 ~ ., data=df)

但是在for循环中,不使用变量名(因此我可以对任何data.frame使用相同的代码)。类似的东西:

for (i in colnames(df))
{
  fit[i] <- lm(i ~ ., data=df)
}

(此代码不起作用。)

也许我的问题很简单,但我不知道如何继续。

谢谢!

1 个答案:

答案 0 :(得分:3)

您需要使用字符串操作

添加额外的步骤来构建公式对象
fit <- vector(mode = "list", length = ncol(df))
for (i in colnames(df)) {
    fm <- as.formula(paste0(i, " ~ ."))
    fit[[i]] <- lm(fm, data = df)
}