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

R语言初学者如何按Number分组计算V4、V92线性回归并生成新表

分组线性回归批量计算方案

tidyverse 实现(推荐初学者使用,代码可读性高)

需要用到dplyr做分组聚合,broom做回归结果结构化处理,使用步骤如下:

  • 安装依赖包(首次使用时执行)
install.packages(c("dplyr", "broom"))
  • 加载包并执行计算
library(dplyr)
library(broom)

# 替换df为你的原始数据表名
summary_table <- df %>%
  group_by(Number) %>%
  summarise(
    分组样本量 = n(),
    # 拟合线性回归并将整个lm对象存入列表列
    线性回归结果 = list(lm(V4 ~ V92, data = cur_data()))
  )

扩展用法

如果需要把回归结果的核心指标拆分为独立列,可修改summarise部分的代码:

summary_table <- df %>%
  group_by(Number) %>%
  summarise(
    分组样本量 = n(),
    截距 = tidy(lm(V4 ~ V92))$estimate[1],
    V92回归系数 = tidy(lm(V4 ~ V92))$estimate[2],
    回归p值 = tidy(lm(V4 ~ V92))$p.value[2],
    拟合R方 = glance(lm(V4 ~ V92))$r.squared
  )

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

如果不想加载第三方包,可通过拆分数据集+批量迭代实现:

# 按Number字段拆分原始数据
split_df <- split(df, df$Number)
# 批量计算回归并合并结果
summary_table <- do.call(rbind, lapply(split_df, function(sub_data) {
  lm_res <- lm(V4 ~ V92, data = sub_data)
  data.frame(
    Number = unique(sub_data$Number),
    分组样本量 = nrow(sub_data),
    线性回归结果 = I(list(lm_res)),
    row.names = NULL
  )
}))

结果查看

如果需要调取某一个Number对应的完整回归结果,执行以下代码即可:

# 替换target_num为你要查询的Number取值
target_res <- summary_table$线性回归结果[[which(summary_table$Number == target_num)]]
print(target_res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:57:02