r - 同一数据框中的多个线性模型
问题描述
我有一个接受数据框的函数,第一列必须是 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)
}
推荐阅读
- c++ - getaddrinfo 与 inet_pton
- java - Java 周期转换日期浮动
- python - 检测函数是否被定义为 Python 3.x 中类的一部分
- python-3.x - 为什么我似乎从 Pandas 得到不正确的滚动标准?
- mysql - 想从 4 个连接的表中获取数据?
- schema.org - 服务架构未检测到富结果测试?
- node.js - 如何在节点 js 中更改日志 txt 文件的颜色
- automated-tests - 在 Pywinauto 中使用“UIA”后端访问 MFC 应用程序元素会导致应用程序崩溃吗?
- google-cloud-platform - 保存数组
在 BigQuery 中使用 Java - java - Spring Boot 2.3 Liveness Probe 功能无法正常关闭