首页 > 解决方案 > 如何删除列行中的重复条目?

问题描述

我有一个数据框,df:

a <- c("ID1","ID2","ID3")
b <- c("happy;sad","happy;happy","happy;sad;sad;sad")
c <- c("I","II","I")
df <- data.frame(a,b,c)

    a                 b  c
1 ID1         happy;sad  I
2 ID2       happy;happy II
3 ID3 happy;sad;sad;sad  I

在 b 列中,有一些重复项,例如 - happy 在 df[2,2] 中列出了两次,sad 在 df[3,2] 中列出了 3 次。如何编辑 df$b 以删除重复条目,如下所示:

    a                 b  c
1 ID1         happy;sad  I
2 ID2             happy II
3 ID3         happy;sad  I

标签: rdataframeduplicates

解决方案


拆分,唯一,然后再次将其粘贴回来:

df$b <- sapply(as.character(df$b), function(i){
  paste(unique(unlist(strsplit(i, ";"))), collapse = ";")
})
#     a         b  c
# 1 ID1 happy;sad  I
# 2 ID2     happy II
# 3 ID3 happy;sad  I

推荐阅读