求三个小数的平均数,哪里错了呢??求大神解答??运行之后求平均值保留两位小数总是不对

小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
求各位大神,perl 对特定范围内的数据求平均值
Chr& & & & Pos& & & & Y
1& & & & 49820& & & & -1.68855
1& & & & 54414& & & & -1.55555
1& & & & 99585& & & & -1.05338
1& & & & 103929& & & & -0.523771
1& & & & 124119& & & & -0.261121
1& & & & 200009& & & & -0.1234
1& & & & 390189& & & & 2.2456
2& & & & 48625& & & & 0.0250024
2& & & & 88663& & & & -0.659643
2& & & & 90128& & & & -0.302134
2& & & & 122780& & & & -0.366919
2& & & & 555583& & & & -1.00859
想根据第一列和第二列的范围来求第三列的平均值,具体为:第二列的按照每100,000的长度来分组,把第三列求一个平均值,如果有些范围没有数值则写为0(如下)。想得到的结果是:
1&&100,000& & -1.
1&&200,000& & -0.392446
1&&300,000& & -0.1234
1&&400,000& & 2.2456
2&&100,000& & -0.3259234
2&&200,000& & 0
2&&300,000& & 0
2&&400,000& & 0
2&&500,000& & 0
2&&600,000& & -1.00859
其中100,000、200,000...代表0-100,000、100,000-200,000范围的意思。
求各位大神帮忙啦!
就是按照0-001-......这些范围(每100000长度)对第三列进行求平均值。每个范围求一个平均值输出哦
或者用别的语言写也成,只要能实现就行哈
太感谢啦!关于自学perl,大神能否给指条明路啊?实验室只有我一个人刚开始学,感觉好费劲。。。
有个程序能否再帮忙看一下啊?有点错误。。
#! /usr/bin/perl -w
die &perl $0 test \n& unless @ARGV==1;
open IN,$file||
map{my @p=$hash{$p}{$_}=$p}&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/$
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 这样有相同行的只保留了一个计算,这个应该怎么改呢?
研究生必备与500万研究生在线互动!
扫描下载送金币
浏览器进程
打开微信扫一扫
随时随地聊科研

我要回帖

更多关于 excel求平均值 的文章

 

随机推荐