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

将矩阵列表批量转换为回归公式的技术实现问询

批量生成回归公式的R实现

步骤1:模拟数据

先构造符合要求的myCombos列表(3个矩阵,每列对应一组自变量组合):

# 构造示例列表
myCombos <- list(
  mat1 = matrix(c("HPI_Y_ln", "Interbank_6M", "Loans_Total_ln",
                  "CPI_Y", "GDP_Y", "Pop_Growth"), nrow = 3, ncol = 2),
  mat2 = matrix(c("HPI_Y_ln", "CPI_Y"), nrow = 2, ncol = 1),
  mat3 = matrix(c("Interbank_6M", "Loans_Total_ln", "Pop_Growth"), nrow = 3, ncol = 2)
)

# 指定因变量
dep_var <- "Unemployment"

步骤2:定义公式生成函数

写一个简单函数,把一列自变量拼接成公式右侧,再和因变量组合:

build_formula <- function(var_col, dep_var) {
  rhs <- paste(var_col, collapse = " + ")
  as.formula(paste(dep_var, "~", rhs))
}

步骤3:用map批量生成公式

利用purrr包的嵌套map操作,遍历列表中所有矩阵的每一列:

library(purrr)

# 按原列表结构生成嵌套公式列表
all_formulas <- myCombos %>%
  map(function(mat) {
    map(seq_len(ncol(mat)), ~ build_formula(mat[, .x], dep_var))
  })

# 查看结果结构
str(all_formulas)

可选:展平公式列表

如果需要把所有公式合并成一个扁平列表,方便后续批量运行回归:

flat_formulas <- flatten(all_formulas)

# 查看其中一个示例公式
flat_formulas[[1]]
# 输出:Unemployment ~ HPI_Y_ln + Interbank_6M + Loans_Total_ln

说明

  • 外层map遍历myCombos中的每个矩阵
  • 内层map遍历当前矩阵的每一列,调用build_formula生成对应回归公式
  • 生成的公式是formula类型,可直接传入lm()等回归函数使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:12:41