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

如何在R语言中合并多列内容并去除重复字符串

R语言合并多列字符串并去重的方法

先模拟示例数据(匹配你提供的场景)

df <- data.frame(
  ID = c(1, 2, 3),
  Col1 = c("苹果", "香蕉", "橙子"),
  Col2 = c("苹果", "葡萄", "橙子"),
  Col3 = c("香蕉", "香蕉", "葡萄"),
  stringsAsFactors = FALSE
)

方法一:Base R 实现

逐行提取多列内容,去重后用指定分隔符合并:

# 新增合并列,自动去重
df$合并结果 <- apply(df[, -1], 1, function(x) {
  paste(unique(x), collapse = ", ") # 可替换分隔符,比如换成"|"
})

方法二:Tidyverse 工具包实现

用dplyr+tidyr的组合,更适合复杂数据场景:

library(dplyr)
library(tidyr)

df <- df %>%
  # 将多列转为长格式
  pivot_longer(cols = -ID, values_to = "内容") %>%
  # 按ID和内容去重
  distinct(ID, 内容) %>%
  # 转回宽格式并合并内容
  summarise(合并结果 = paste(内容, collapse = ", "), .by = ID) %>%
  # 合并回原数据框
  right_join(df, ., by = "ID")

补充说明

  • 如果你的数据里有空字符串或NA,可以在distinct前加上filter(内容 != "" & !is.na(内容))过滤无效值
  • 可根据需求修改paste里的collapse参数,调整合并后的分隔符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:26:55