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

R语言迭代替换因变量建模输出broom::glance结果的实现方法

R实现批量线性回归并汇总结果

我们可以通过purrr包的迭代功能替代重复的复制粘贴操作,具体实现步骤如下:

  • 加载依赖包
library(tidyverse)
library(broom)
  • 预处理数据,提前将v2、v3转为因子类型,避免迭代中重复处理
df <- df %>%
  mutate(across(c(v2, v3), as.factor))
  • 批量拟合模型并汇总结果
# 定义所有待拟合的因变量名称
dv_list <- paste0("q", 1:5)

# 迭代拟合每个模型,自动汇总结果
model_result <- map_dfr(dv_list, function(cur_dv) {
  # 生成自变量列表:排除id列和当前的因变量,避免因变量同时进入自变量
  iv_list <- setdiff(names(df), c("id", cur_dv))
  # 构建当前模型的回归公式
  cur_formula <- reformulate(termlabels = iv_list, response = cur_dv)
  # 拟合模型+提取统计量+标注当前因变量
  lm(cur_formula, data = df) %>%
    glance() %>%
    mutate(dv = cur_dv)
})

最终得到的model_result就是包含5行统计结果的tibble,其中dv列标注了每行对应的因变量名称。

如果偏好更简洁的管道式写法,可以合并为以下代码:

model_result <- paste0("q", 1:5) %>%
  map_dfr(~ lm(reformulate(setdiff(names(df), c("id", .x)), response = .x), data = df) %>%
            glance() %>%
            mutate(dv = .x))

内容的提问来源于stack exchange,提问作者C.Robin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:39:04