| 查看: 326 | 回复: 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); |
» 猜你喜欢
求调剂 有机化学考研356分
已经有4人回复
0703 化学 求调剂,一志愿山东大学 342 分
已经有4人回复
086000生物与医药调剂
已经有7人回复
305求调剂
已经有7人回复
348求调剂
已经有3人回复
332求调剂
已经有6人回复
各位老师好,我的一志愿为北京科技大学085601材料专硕
已经有6人回复
085600 材料与化工 329分求调剂
已经有10人回复
356求调剂
已经有3人回复
一志愿武汉理工,总分321,英一数二,求老师收留。
已经有7人回复

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














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