用perl处理按第三列相同就合并求平均值

2025-04-28 07:54:36
推荐回答(1个)
回答1:

比较简单自己写就可以了啊
while ()

chomp;
@d = split;
next if $#d != 2;
if (!exists $data{$d[2]})
{
$data{$d[2]} = [$d[1], 1];
}
else
{
$data{$d[2]}[0] += $d[1];
$data{$d[2]}[1]++;
}
}
for (keys %data)
{
print $data{$_}[0]/$data{$_}[1], " $_\n";
}
__DATA__
1    0.66    abc

2    0.68    abc
3    0.70    abc
4    0.63    de
5    0.61    de
6    -0.71    fg
7    -0.73    fg
8    0.54    h