在 R 中,我有以下数据框,其中“重叠”列列出了在其他列上有重叠值的行。
df <- data.frame(overlap = c("1,2,3", "1,2,3", "1,2,3,4", "3,4",
"5,6", "5,6,7", "6,7",
"8,9", "8,9,10", "9,10",
"11,12,13", "11,12,13",
"11,12,13,14", "13,14",
"15,16", "15,16,17", "16,17",
"18,19", "18,19,20", "19,20"))
df
overlap
1 1,2,3
2 1,2,3
3 1,2,3,4
4 3,4
5 5,6
6 5,6,7
7 6,7
8 8,9
9 8,9,10
10 9,10
11 11,12,13
12 11,12,13
13 11,12,13,14
14 13,14
15 15,16
16 15,16,17
17 16,17
18 18,19
19 18,19,20
20 19,20
我想识别具有共同值的行,即使这些值不存在于所有行中,然后只保留其中 1 行。例如,行 1-4 包含组合集 1,2,3,4,我想只保留其中一行。如果我们保留第一行,则生成的 df 将是:
1 1,2,3
5 5,6
8 8,9
11 11,12,13
15 15,16
18 18,19
我在这里搜索了许多其他解决方案,但没有一个包括不均匀的行长,这是至关重要的,因为完整数据可以包含具有数十个值的行。