R如何通过分隔符拆分列中的元素并保留唯一元素[duplicate]

tv6aics1  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(79)
    • 此问题在此处已有答案**:

Remove duplicate values on each string in R [duplicate](2个答案)
5天前关闭。
我在R中有一个包含两列的 Dataframe :

sampleID        annotation
    A1            orange; apple
    A2            apple; apple
    A3            apple; orange; orange; grapes; apple
    A4            grapes; orange

我想按""拆分注解列;"分隔符,并保留唯一的分隔符,并获得如下输出:

sampleID        annotation
    A1            orange; apple
    A2            apple
    A3            apple; orange; grapes
    A4            grapes; orange
cczfrluj

cczfrluj1#

对于data$annotation中的每个元素,split为元素,取unique值,如果希望每个元素中有一个向量,则将paste返回为单个字符串(可选)。
碱基R:

lapply(data$annotation, \(x) paste(unique(strsplit(x, "; ")[[1]]), collapse = "; "))

整理:

library(purrr)
library(dplyr)
library(stringr)
data %>% 
  mutate(annotation = map(annotation, ~ str_flatten(str_unique(str_split_1(.x, "; ")), "; ")))

相关问题