在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)
}
(此代码不起作用。)
也许我的问题很简单,但我不知道如何继续。
谢谢!
答案 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)
}