|
|
 送红花一朵
有个程序能否再帮忙看一下啊?有点错误。。
#! /usr/bin/perl -w
use strict;
die "perl $0 test \n" unless @ARGV==1;
my $file=shift;
open IN,$file||die;
my %hash;
map{my @p=split;$hash{$p[0]}{$_}=$p[1]}<IN>;
close IN;
foreach my $k(sort keys%hash){
my $count=0;
my $sum=0;
foreach my $v(sort keys %{$hash{$k}}){
$count++;
$sum+=$hash{$k}{$v};
}
my$mean=sprintf "%.2f",$sum/$count;
print "$k\t",$mean,"\n";
}
就是第一列相同的计算一个平均值,
1 0.32
1 2
1 2
1 0.54
1 0.98
8 0.78
8 0.56
8 0.23
8 0.44
8 0.33
8 0.35
1的算一个平均值,8的算一个平均值,但是这个程序算出来的与我手动算的结果不一致,好像是1 2 这样有相同行的只保留了一个计算,这个应该怎么改呢? |
|