| 查看: 316 | 回复: 0 | ||
[求助]
解释一下下面perl程序每一行的意思
|
|
比如有这样一个矩阵: sox 7.2 3.8 6.8 9.2 5.6 sox 5.4 2.3 4.6 8.9 9.0 sox 6.7 NA 7.8 9.0 3.1 goo 2.4 6.7 NA 9.0 2.1 goo 2.1 5.6 7.8 9.7 1.2 pkk 2.5 4.3 6.5 4.9 0.2 pkk 2.1 3.4 3.2 NA 4.6 pkk 3.2 5.6 6.7 9.1 2.2 这个矩阵很简单,就是有一些同名的行,现在我要做的是,把这些同名的行的数据按每一列合并起来,按什么合并,按照每一列的平均值来合并 就是说,比如行名为sox的行,第一列数据为: 7.2, 5.4, 6.7 那么第一列的平均值就是(7.2+5.4+6.7)/3=6.4, 第二列数据为3.8, 2.3, NA, 那么平均值就是 (3.8+2.3)/2=3, 以此类推,得到每一列的平均值,作为最后的值,那么行名为sox的行最后就合并为: sox 6.4 3 .... 下列是程序: #!/usr/bin/perl use strict; use warnings; use Data: umper;my %hash; my %line; while(<> {my @a = split; for my $i (0..($#a-1)) { $hash{$a[0]}->[$i] += $a[($i+1)]; $line{$a[0],($i)}++ ; } } for my $k (keys %hash) { for my $i (0..(@{$hash{$k}}-1)) { $hash{$k}->[$i] /= $line{$k,($i)}; } } print Dumper(\%hash); |
» 猜你喜欢
为什么中国大学教授们水了那么多所谓的顶会顶刊,但还是做不出宇树机器人?
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
“人文社科而论,许多学术研究还没有达到民国时期的水平”
已经有5人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有11人回复
什么是人一生最重要的?
已经有4人回复
版面费该交吗
已经有3人回复
今年春晚有几个节目很不错,点赞!
已经有12人回复
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有12人回复

找到一些相关的精华帖子,希望有用哦~
请帮忙编写一个perl程序处理文本
已经有26人回复
Perl 生物信息学编程求助,运行出现问题,烦请帮忙查找一下错误,谢谢!
已经有3人回复
VB解释
已经有3人回复
请问一下 中科院报名的“硕转博”是什么意思啊?
已经有5人回复
请教Windows系统下perl脚本的ARGV应用问题,谢谢
已经有5人回复
程序语言版拟开新子版“Shell&Perl&Python”
已经有10人回复
这个是什么意思?
已经有14人回复
大家帮我看看这个拒稿信是什么意思?
已经有10人回复
科研从小木虫开始,人人为我,我为人人













umper;
{
回复此楼
点击这里搜索更多相关资源