【发布时间】:2013-08-30 17:25:21
【问题描述】:
在最近的一项家庭作业中,我们被要求运行 27 个线性模型,每次都添加一个附加变量(目标是绘制 R2 的变化与调整后的 R2)。我发现很难通过算法创建这样的公式。我最终使用的代码如下所示(请注意,数据框中的第一列是因变量,其余都是预期的自变量。
make.formula <- function(howfar) {
formula <- c()
for (i in 1:howfar) {
if (i == 1) {
formula <- paste(formula, names(d)[i], '~')}
else if (i == howfar) {
formula <- paste(formula, names(d)[i], '')
}
else {
formula <- paste(formula, names(d)[i], '+')}
}
return(formula)
}
formulas <- lapply(seq(2, length(d)), make.formula)
formulas <- lapply(formulas, as.formula)
fits <- lapply(formulas, lm, data = d)
这可行,但似乎远非理想,我的印象是我在 R 中使用 for 循环所做的任何事情都可能不是最好的方式。有没有更简单的方法来为给定的数据框通过算法构造公式?
【问题讨论】: