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

如何在R语言中根据sample列重复值合并hugo列数据?

按Sample合并对应Hugo值的实现方法

先定义原始数据框:

hugo <- c("bnv", "cdv", "gcd", "efd", "efd")
sample <- c("1", "2", "3", "2", "4")
df <- data.frame(hugo, sample)

方法一:使用dplyr(tidyverse工具链)

需要先加载dplyr和stringr包,通过分组聚合实现合并:

library(dplyr)
library(stringr)

result_df <- df %>%
  group_by(sample) %>%
  summarize(hugo = str_c(hugo, collapse = ", ")) %>%
  ungroup() %>%
  rename(hugo2 = hugo, sample2 = sample) %>%
  select(hugo2, sample2) # 调整列顺序匹配目标格式

运行后得到的result_df就是你要的结果:

hugo2 sample2
1      bnv       1
2 cdv, efd       2
3      gcd       3
4      efd       4

方法二:使用Base R原生函数

不需要额外安装包,用aggregate函数就能完成:

# 按sample分组聚合,合并hugo值
result_df_base <- aggregate(hugo ~ sample, data = df, FUN = function(x) paste(x, collapse = ", "))
# 重命名列名
colnames(result_df_base) <- c("sample2", "hugo2")
# 调整列顺序
result_df_base <- result_df_base[, c("hugo2", "sample2")]

这个方法得到的结果和上面完全一致。

核心逻辑都是按sample列分组,把每组对应的hugo值用逗号连接成字符串,最后调整列名和顺序匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:01:22