数据集看起来像
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)