如何删除R中多个列之间的重复项对

时间:2019-05-07 21:29:41

标签: r

我的数据框如下:

dat <- data.frame(
V1=c("A","B","C","A"),
V2=c("B","C","D","B"),
V3=c("C","D","","C"),
V4=c("D","","","E")
)

  V1 V2 V3 V4
1  A  B  C  D
2  B  C  D   
3  C  D      
4  A  B  C  E

第2行和第3行在第1行的不同列中。如何过滤掉第2行和第3行,以便只剩下第1行和第4行?

1 个答案:

答案 0 :(得分:0)

将每一行粘贴在一起。使用grepl浏览这些值并检查(部分)它是否与任何值匹配。

S = trimws(Reduce(paste, dat), "right")
dat[sapply(1:length(S), function(i) !any(grepl(S[i], S[-i]))),]
#  V1 V2 V3 V4
#1  A  B  C  D
#4  A  B  C  E