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

如何在R语言中按分隔符拆分数据框列元素并保留唯一值

在R中处理数据框annotation列的去重合并

先构建你的示例数据框:

df <- data.frame(
  sampleID = c("A1", "A2", "A3", "A4"),
  annotation = c("orange; apple", "apple; apple", "apple; orange; orange; grapes; apple", "grapes; orange"),
  stringsAsFactors = FALSE
)

下面提供两种可行的处理方法:

方法一:用tidyverse工具集处理

需要加载dplyr和stringr包,步骤是拆分字符串、去重、重新合并:

library(dplyr)
library(stringr)

df_processed <- df %>%
  mutate(
    annotation = str_split(annotation, ";\\s*") %>%  # 按分号+可选空格拆分
      lapply(unique) %>%  # 对每个拆分后的元素列表去重
      sapply(paste, collapse = "; ")  # 重新拼接成带分号的字符串
  )

方法二:用基础R实现

不需要额外加载包,直接用sapply和strsplit组合处理:

df_processed_base <- df
df_processed_base$annotation <- sapply(strsplit(df$annotation, ";\\s*"), function(x) {
  paste(unique(x), collapse = "; ")
})

处理后的结果如下:

> df_processed
  sampleID          annotation
1       A1       orange; apple
2       A2                apple
3       A3 apple; orange; grapes
4       A4       grapes; orange

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:23:03