【问题标题】:multiple linear models in the same data frame同一数据框中的多个线性模型
【发布时间】:2019-05-02 14:21:14
【问题描述】:

我有一个接受数据框的函数,第一列必须是 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

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

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

【问题讨论】:

    标签: r lm


    【解决方案1】:

    已经解决了,看看这个post 我把我所有的模型放在一个列表中,并使用 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)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2019-03-28
      • 1970-01-01
      相关资源
      最近更新 更多