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

如何为1000个data.frame计算线性回归斜率及回归方程?

批量处理1000个data.frame的线性回归分析

假设你的1000个data.frame已经整理到一个列表(命名为df_list)中,如果还没整理,可以用以下代码把分散的df1到df1000存入列表:

# 生成包含1000个data.frame的列表示例(已有列表可跳过)
set.seed(123) # 设置随机种子保证结果可复现
df_list <- lapply(1:1000, function(i) {
  data.frame(a=rnorm(20, 0,1), b=rnorm(20,1,2), c=rnorm(20, 2, 1), d=rnorm(20, 1,2))
})

# 若已有分散的df1到df1000,用以下代码合并到列表
df_list <- mget(paste0("df", 1:1000))

接下来定义函数,处理单个data.frame并提取斜率和回归方程:

get_reg_result <- function(df) {
  # 执行线性回归:以b为因变量,d为自变量
  model <- lm(b ~ d, data = df)
  # 提取截距和斜率系数
  coeffs <- coef(model)
  intercept <- round(coeffs[1], 4)
  slope <- round(coeffs[2], 4)
  # 构建回归方程字符串
  eqn <- paste0("b = ", intercept, " + ", slope, "*d")
  # 返回结果
  list(slope = slope, equation = eqn)
}

批量应用函数到所有data.frame,得到结果列表:

reg_results <- lapply(df_list, get_reg_result)

最后整理成便于查看的结构化结果:

result_df <- do.call(rbind, lapply(reg_results, function(x) {
  data.frame(slope = x$slope, equation = x$equation)
}))
# 添加序号对应原data.frame
result_df$df_index <- 1:nrow(result_df)
# 查看前5个结果示例
head(result_df)

关键说明

  • 斜率对应回归模型中自变量d的系数,存储在result_df$slope列
  • 回归方程以字符串形式存储在result_df$equation列,直接展示每个模型的拟合公式
  • 若需要更高精度的系数,可去掉代码中的round()函数保留原始计算值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:31:03