R 删除数据帧列中所有值的字符串中的重复值
我有一个数据帧,如下面的dfR 删除数据帧列中所有值的字符串中的重复值,r,R,我有一个数据帧,如下面的df c1 <- c(4, 3, 6, 5, 2) c2 <- c("AAA, AAA, VAA, LLA", "CEA, CEA, HEA, CKA, NEA, TEA", "RFA, LIA, VIA, CIA, CIA, RKA", "JHD, JKE, JKE, HGH", "JII, JII, ISA, KSA") df <- data.frame(c1, c2) 我想消除第二列中的值的任何重复项。例如,它应该删除第二列中对应于第一行4的值的
c1 <- c(4, 3, 6, 5, 2)
c2 <- c("AAA, AAA, VAA, LLA", "CEA, CEA, HEA, CKA, NEA, TEA", "RFA, LIA, VIA, CIA, CIA, RKA", "JHD, JKE, JKE, HGH", "JII, JII, ISA, KSA")
df <- data.frame(c1, c2)
我想消除第二列中的值的任何重复项。例如,它应该删除第二列中对应于第一行4的值的AAA之一。如何对第二列中的所有单元格执行此操作
谢谢 更新的解决方案
正如评论中正确指出的,原始c2是一个因子列。
级别SDF$c2
>[1]AAA、AAA、VAA、LLA-CEA、CEA、HEA、CKA、NEA、TEA
>[3]JHD、JKE、JKE、HGH JII、JII、ISA、KSA
>[5]RFA、LIA、VIA、CIA、CIA、RKA
要更新因子水平,我们可以执行以下操作:
图书馆咕噜声
图书馆长
等级D$c2[1]AAA、VAA、LLA CEA、HEA、CKA、NEA、TEA
>[3]JHD、JKE、HGH JII、ISA、KSA
>[5]RFA、LIA、VIA、CIA、RKA
df
>c1 c2
>14 AAA、VAA、LLA
>2 3 CEA、HEA、CKA、NEA、TEA
>36区域情报局、情报局、VIA、中央情报局、RKA
>4.5 JHD、JKE、HGH
>5.2 JII、ISA、KSA
原始解决方案,添加新列表列,而不是更新因子级别
对于tidyverse方法,您可以这样做,将结果放入新的c3列:
图书馆弹琴
图书馆咕噜声
图书馆长
mutatedf,c3=mapstr_splitc2,边界词,唯一
>c1 c2 c3
>14 AAA,AAA,VAA,LLA AAA,VAA,LLA
>2 3 CEA,CEA,HEA,CKA,NEA,茶CEA,HEA,CKA,NEA,茶
>36区域情报局,区域情报局,通过,中央情报局,中央情报局,RKA区域情报局,区域情报局,通过,中央情报局,RKA
>JHD,JKE,JKE,HGH JHD,JKE,HGH
>5 2 JII,JII,ISA,KSA JII,ISA,KSA
我很确定,在base R中也会有一种很好的方法,其他人可以提供。可能是vapplystrsplitas.characterdf$c2,,functionx to stringuiquex,