同一数据框中的多个线性模型

multiple linear models in the same data frame

我有一个接受数据框的函数,第一列必须是 Y,用户选择哪一列是 X。我需要 运行 同一个 data.frame 中的多个线性模型(找出哪个 lm 对我的用户有最好的结果)。

使用 mtcars 数据集,我只有一个线性模型:

    results_LM <- function(data, var) {
        fm1 <- as.formula(paste(colnames(data)[1], "~", var))
        lm1(fm, data = data)
        return(lm1)
    }

    fit <- results_LM(mtcars, "disp")

我将对我将测试的每个线性模型执行相同的操作(并存储在我稍后将使用的最终列表中):

    results_LM <- function(data, var) {
        fm1 <- as.formula(paste(colnames(data)[1], "~", var))
        lm1(fm, data = data)

        fm2 <- as.formula(paste(colnames(data)[1], "~", var, "+ I(", var, "^2)"))
        lm2(fm, data = data)

        all_lm <- list("FirstLM" = lm1, "SeconLM" = lm2)

        return(all_lm)
    }

这适用于 fm3、lm3...fm99、lm 99

这可行,但我想这是更好的方法

关于如何在同一个数据框中 运行 多个线性模型有什么想法吗?

已经解决了,在看这个 我将我所有的模型都放在一个列表中,并使用 lapply 到 运行 所有这些

results_LM <- function(data, var) {
       formulas <- list(as.formula(paste(colnames(data)[1], "~", var),
                        as.formula(paste(colnames(data)[1], "~", var, "+ I(", var, "^2)")))

       models <- lapply(formulas, lm, data = data)

       return(models)
    }