You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用purrr将回归模型右侧变量映射到回归函数的实现方法

purrr批量生成回归模型实现方法

首先将所有回归方程的右侧变量项整理为命名向量,名称对应你需要的模型前缀,再通过purrr::map批量拟合模型即可。

基础实现代码

# 加载purrr包
library(purrr)

# 1. 定义所有回归的右侧变量,命名为你需要的模型前缀
rhs_terms <- c(
  m.1.1 = "cyl",
  m.1.2 = "cyl + disp"
)

# 2. 批量拟合线性模型,返回命名列表
reg_list <- map(rhs_terms, function(x) {
  lm(formula = as.formula(paste0("mpg ~ ", x)), data = mtcars)
})

# 3. 调整列表元素名称为要求的*_reg格式
names(reg_list) <- paste0(names(reg_list), "_reg")

运行后得到的reg_list就是目标模型列表,可直接通过reg_list$m.1.1_reg、reg_list$m.1.2_reg调用对应模型,和单独赋值的效果完全一致。
如果需要将模型直接写入全局环境作为独立变量,额外运行一行代码即可:

list2env(reg_list, envir = .GlobalEnv)

大量递进变量的高效生成方案

如果你的模型是按顺序依次加入变量的层级模型,可通过purrr::accumulate自动生成所有右侧变量项,无需手动拼接:

# 按加入顺序排列的所有变量
var_sequence <- c("cyl", "disp", "hp", "drat", "wt", "qsec")
# 自动生成累加的右侧变量字符串,同时按规则命名
rhs_terms <- set_names(
  accumulate(var_sequence, ~ paste(.x, .y, sep = " + ")),
  paste0("m.1.", seq_along(var_sequence))
)

内容的提问来源于stack exchange,提问作者nicholas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:06:03