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

R语言中如何对多个同结构数据表循环执行lm线性回归命令

R语言批量对多数据集执行相同回归的实现方案

核心思路

将所有结构一致的数据集存入同一个列表,再对列表迭代执行回归命令,所有回归结果会统一存在结果列表中,无需重复调用lm()。


可复现示例适配(cars系列数据集)

基础R实现(无需额外安装包)

# 构造示例数据
cars1 = cars
cars2 = cars*2
cars3 = cars*3

# 批量匹配目标数据集存入列表
df_list <- mget(ls(pattern = "^cars\\d$"))

# 批量执行回归,结果存入lm_results列表
lm_results <- lapply(df_list, function(df) {
  lm(speed ~ dist, data = df)
})

tidyverse风格实现(适配后续结果批量整理)

library(purrr)
library(broom)

# 批量执行回归
lm_results <- map(df_list, ~ lm(speed ~ dist, data = .x))

# 可直接将所有回归的系数结果合并为统一数据框
coef_df <- map_dfr(lm_results, tidy, .id = "数据集名称")

适配你的季度数据集场景

仅需修改数据集匹配规则即可:

# 方式1:正则匹配批量抓取所有符合命名规则的数据集
df_list <- mget(ls(pattern = "^data_20\\d{2}q[12]$"))

# 方式2:手动构造列表(适合环境变量复杂的场景,避免误抓)
df_list <- list(
  data_2018q1 = data_2018q1,
  data_2018q2 = data_2018q2,
  data_2019q1 = data_2019q1,
  data_2019q2 = data_2019q2
)

# 批量执行目标回归
lm_results <- lapply(df_list, function(df) {
  lm(VD4020 ~ V2010 + V2007, data = df)
})

常用结果操作

  • 查看单个数据集的回归结果:lm_results$data_2018q1
  • 批量提取所有回归的R平方:sapply(lm_results, function(x) summary(x)$r.squared)
  • 批量提取所有回归的系数:lapply(lm_results, coef)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:09:02