小编Fen*_*Lee的帖子

如何在两个文件中找到两个匹配的ID,然后使用它们的值进行计算

我有两个文件如下:

文件#1

A 20.68
B 17.5
C 15.6
D 20.6
E 27.6
Run Code Online (Sandbox Code Playgroud)

文件#2

C   16.7
X   2.9
E   7.0
A   15.2
Run Code Online (Sandbox Code Playgroud)

第一列是ID,第二列是得分.我试图在两个文件中找到匹配的ID,然后使用FILE#1中的相应分数计算FILE#2中的最终分数(Score2 - Score1).以下是我想要的结果:

OUTPUT

C 1.1
E -20.6
A -5.48
Run Code Online (Sandbox Code Playgroud)

通过以下代码,我可以获得匹配的ID,但我不知道如何调用FILE#2中的相应分数来在FILE#2中进行计算.对你的帮助表示感谢!

open my $A, 'list1.txt';
open my $B, 'list2.txt';
my $h;
map { chomp; $h{(split /\s+/)[0]} ++} <$A>;


while (<$B>) {
    my @split = split(/\s+/,$_);
    my $ID = $split[0];
    my $score = $split[1];
    print "$ID\t$score\n" if $h{$ID};

}
Run Code Online (Sandbox Code Playgroud)

perl

5
推荐指数
1
解决办法
91
查看次数

标签 统计

perl ×1