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

如何合并R语言DataFrame中的重复行并拼接对应昵称列内容

R语言合并重复行并拼接对应列内容方案

前置修正:重复行筛选代码问题

你当前使用的nick2 <- subset(nick, any(duplicated(nick$Names)))逻辑存在错误:any(duplicated(nick$Names))返回的是单布尔值,只要整个数据集存在重复的Names就返回TRUE,最终会返回整个数据集而非仅重复行子集。如需筛选出所有存在重复的Names对应的行,可使用以下代码:

nick2 <- nick[duplicated(nick$Names) | duplicated(nick$Names, fromLast = TRUE), ]

合并重复行拼接Nicknames的实现方法

方法1:dplyr包实现(写法简洁易读)

  • 加载依赖包:library(dplyr)
  • 全数据集合并代码:
merged_df <- nick %>%
  group_by(Names) %>%
  summarise(Nicknames = paste(Nicknames, collapse = ", ")) %>%
  ungroup()
  • 仅处理重复行子集的话,将上述代码中的nick替换为nick2即可,collapse参数可自定义拼接分隔符(如;、|等)。

方法2:基础R实现(无需额外安装依赖)

核心代码如下:

merged_df <- aggregate(Nicknames ~ Names, data = nick, FUN = paste, collapse = ", ")
  • 同理,替换data参数的数据集即可处理筛选后的重复行子集。

可选优化

如果Nicknames列存在空值或NA值,可在合并前先过滤无效值:

# 基础R过滤
nick_clean <- nick[!is.na(nick$Nicknames) & nick$Nicknames != "", ]
# dplyr过滤
nick_clean <- nick %>% filter(!is.na(Nicknames), Nicknames != "")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:24:07