如何删除 R 中由 : 分隔的重复连续文本



数据集看起来像

  id  agent    final_col
1  1   A:A         A
2  1   A:A         A
3  2     B         B
4  3     C         C
5  4 A:C:C       A:C
6  4 A:C:C       A:C
7  4 A:C:C       A:C

如何删除重复的条目,以获得像 R 中的final_col这样的干净列?

让我们根据df$agent生成一个新列

df$final_col <- sapply(df$agent, function(txt){ 
    paste(unique(unlist(strsplit(txt, ":"))), collapse=":")
})

对于我们按:拆分的每个元素,选择唯一的元素,然后再次将它们放在一起。

您可以使用

gsub和正则表达式来执行此操作

gsub("\b(\w+)(\:\1)+\b", "\1", DAT$agent)
[1] "A"   "A"   "B"   "C"   "A:C" "A:C" "A:C"

您的数据

DAT = read.table(text="  id  agent    final_col
1  1   A:A         A
2  1   A:A         A
3  2     B         B
4  3     C         C
5  4 A:C:C       A:C
6  4 A:C:C       A:C
7  4 A:C:C       A:C",
header=TRUE, stringsAsFactors=FALSE)

最新更新