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

如何使用R合并data frame中同ID冗余数据并提取对应列极值

R语言实现分组聚合的两种常用方案

首先先构造和你场景一致的示例数据框方便复现:

df <- data.frame(
  id = rep("A", 3),
  col2 = c(1013574, 1014005, 1014005),
  col3 = c(1014475, 1014475, 1014435)
)

注:如果你的实际数据列名不同,把代码中的对应列名替换为你自己的即可。

方案1:使用dplyr包(最常用的tidyverse风格写法)

如果已经安装过tidyverse直接用即可,代码可读性很高:

library(dplyr)

result <- df %>%
  # 按ID列分组
  group_by(id) %>%
  # 分组聚合:第二列取最小值,第三列取最大值
  summarise(
    col2 = min(col2),
    col3 = max(col3)
  )

运行后得到的结果和你预期完全一致,每个ID仅保留一行,对应列分别为分组最小值、最大值。

方案2:基础R自带函数实现(无需安装第三方包)

用基础R的aggregate函数也可以完成需求:

# 分别对两列做聚合后按ID合并
result <- merge(
  aggregate(col2 ~ id, data = df, FUN = min),
  aggregate(col3 ~ id, data = df, FUN = max),
  by = "id"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:15:07