我正在为一个问题而苦苦挣扎,如何根据第二列的匹配来合并多个文件?但是保留第一列。例如,file1,file2,file3,第二列是第一列的子类别,例如,A具有三个值19 20 23。
file1:
A 19 0.5
B 21 0.3
A 20 0.4
C 18 0.0
D 30 0.9
A 23 0.2
file2:
B 21 0.2
A 19 0.4
C 18 0.6
D 30 0.5
A 23 0.4
F 50 0.3
file3:
B 21 0.5
A 19 0.0
C 18 0.3
H 46 0.0
D 30 0.3
A 23 0.6
我想要的,摆脱它们之间不常见的行:combined.file
A 19 0.5 0.4 0.0
B 21 0.3 0.2 0.5
D 30 0.9 0.5 0.3
A 23 0.2 0.4 0.6
C 18 0.0 0.6 0.3
任何人都可以帮忙吗?
非常感谢。
您尚未对此操作指定任何限制。对我来说,最简单,最可靠的方法是用C#编写程序。这是算法:
dotnet new console
Dictionary<string, List<string>>
使用以上给出的数据,该词典将包含以下内容。我加了专栏KEEP吗?当列表中非空项目的数量等于文件计数(3)时为Y。
+------+------+------+------+-------+
| KEY | L1 | L2 | L3 | KEEP? |
+------+------+------+------+-------+
| A 19 | 0.5 | 0.4 | 0.0 | Y |
| B 21 | 0.3 | 0.2 | 0.5 | Y |
| A 20 | 0.4 | null | null | N |
| C 18 | 0.0 | 0.6 | 0.3 | Y |
| D 30 | 0.9 | 0.5 | 0.3 | Y |
| A 23 | 0.2 | 0.4 | 0.6 | Y |
| F 50 | 0.3 | null | null | N |
| H 46 | 0.0 | null | null | N |
+------+------+------+------+-------+