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

如何用R按条件聚合表格行并合并对应列值?

R语言实现按列聚合并合并对应列值的方法

首先先明确你的原始数据结构,可简化为以下代码构建:

df <- data.frame(
  df = c("A", "B", "A", "C", "A", "D"),
  number = c("11", "12", "13", "11", "12", "14")
)

下面给两种常用的实现方法:

方法一:使用base R的aggregate函数

无需额外安装包,直接用基础函数完成:

df_final_base <- aggregate(number ~ df, data = df, FUN = function(x) paste(x, collapse = "; "))

逻辑:aggregate按df列分组,对每组的number值用paste函数合并,collapse = "; "指定用分号加空格作为分隔符。

方法二:使用dplyr包(tidyverse生态)

如果习惯用tidyverse工具链,这种写法更直观:

# 未安装dplyr的话先运行:install.packages("dplyr")
library(dplyr)

df_final_dplyr <- df %>%
  group_by(df) %>%
  summarise(number = paste(number, collapse = "; "), .groups = "drop")

逻辑:group_by(df)按df列分组,summarise执行合并操作,.groups = "drop"用于取消分组状态,避免后续操作出现分组相关警告。

两种方法得到的结果均与你预期的df_final结构一致,运行后可通过print(df_final_base)或print(df_final_dplyr)查看结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:32:11