| 查看: 391 | 回复: 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); |
» 猜你喜欢
【长期招聘】复旦大学 AI 制药实验室 博士后招聘
已经有11人回复
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有5人回复
各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧
已经有4人回复

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










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