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

R语言实现重复PROTOCOL_ID的PROGRAM_AREA同行合并

合并重复PROTOCOL_ID对应的PROGRAM_AREA到同一行的最简R方案

先给出你的原始数据框:

df <- structure(list(PROTOCOL_ID = c(124, 124, 38, 762, 74, 146), 
                     PROGRAM_AREA = c("LOCR", "CRC", "LOCR", "Pedi", "LOCR", "LOCR")), 
                row.names = c(NA, 6L), class = "data.frame")

以下是两种最简实现方案:

方案1:用dplyr(tidyverse生态)

这是日常数据处理中常用的简洁写法,先加载dplyr包,再分组聚合:

library(dplyr)

df_merged <- df %>%
  group_by(PROTOCOL_ID) %>%
  summarize(PROGRAM_AREA = paste(PROGRAM_AREA, collapse = ", ")) %>%
  ungroup()

方案2:用Base R(无需额外安装包)

如果不想依赖第三方包,直接用base R的aggregate函数就能搞定:

df_merged <- aggregate(PROGRAM_AREA ~ PROTOCOL_ID, data = df, FUN = paste, collapse = ", ")

两种方案的输出结果一致,合并后的数据框如下:

PROTOCOL_ID PROGRAM_AREA
1          38         LOCR
2          74         LOCR
3         124    LOCR, CRC
4         146         LOCR
5         762         Pedi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:52:05