1

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 循环中,不使用变量名(这样我就可以对 any 使用相同的代码data.frame)。与此类似的东西:

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

(此代码不起作用。)

也许我的问题是微不足道的,但我不知道如何进行。

谢谢!

4

1 回答 1

3

您需要添加一个额外的步骤来使用字符串操作构建公式对象

fit <- vector(mode = "list", length = ncol(df))
for (i in colnames(df)) {
    fm <- as.formula(paste0(i, " ~ ."))
    fit[[i]] <- lm(fm, data = df)
}
于 2014-03-16T12:42:43.650 回答