假设我有:
V1 V2 id
R1 R2 1
R1 R3 2
R1 R5 3
R1 R7 4
R2 R1 5
R2 R3 6
R2 R8 7
R3 R1 8
R3 R2 9
R3 R6 10
R4 R9 11
生成数据集的代码:
dat1 <- data.frame(
V1 = c(rep("R1", 4), rep("R2", 3), rep("R3", 3), "R4"),
V2 = c("R2", "R3", "R5", "R7", "R1", "R3", "R8", "R1", "R2", "R6", "R9"),
stringsAsFactors = FALSE
)
dat1$id <- 1:nrow(dat1)
我想基于V1和V2列选择非重复记录, 例如id 1和id 5需要被视为相同的记录,因此应选择id 1。因此理想的结果是:
V1 V2 id
R1 R2 1
R1 R3 2
R1 R5 3
R1 R7 4
R2 R3 6
R2 R8 7
R3 R6 10
R4 R9 11
任何建议将不胜感激。
答案 0 :(得分:1)
apply
sort
与V1和V2,然后使用duplicated
找到重复的项目
dat1[!duplicated(t(apply(dat1[,-3],1,sort))),]
V1 V2 id
1 R1 R2 1
2 R1 R3 2
3 R1 R5 3
4 R1 R7 4
6 R2 R3 6
7 R2 R8 7
10 R3 R6 10
11 R4 R9 11