24小时热门版块排行榜    

查看: 428  |  回复: 1

philip890220

铜虫 (初入文坛)

[求助] perl程序求助~~

正如附件及图片所示,注意下一啊,gene那一列中的gene是有重复的,我的目的就是将重复出现的基因每列分别取平均值,最后输出一个文件!
就拿BRO1来说,他出现两次,第二列中的两个数字分别是0.0375155和0.0691334,九曲他俩的平均值,第三列亦然~~,最后的输出结果应该是这样的:
GENE        GSM630089        GSM630090
BRO1               
COX11               
MET16               
SGO1               
YOR121C               
数字我省略了,反正就是有重复的取平均值,不重复的直接输出!,求助~~~       
谢谢喽~~~PS:实际处理的文件较大,附件中仅是例子~~~

1.gif

[ Last edited by philip890220 on 2012-9-25 at 16:48 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : test.txt
  • 2012-09-25 16:32:22, 256 bytes

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jackie1179

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
philip890220: 金币+10, ★★★很有帮助, good~~ 2012-09-29 00:34:55
这个应该可以解决你的问题,输出文件为output.txt
CODE:
#!/usr/bin/perl

use warnings;
use strict;

my $in = "test.txt";

open IN,"<",$in || die "Cannot open this file!$!";
my %array;

;
while() {
  chomp;
  if(/^(\S+)\s+(\S+)\s+(\S+)/) {
    push @{$array{$1}{'col2'}},$2;
    push @{$array{$1}{'col3'}},$3;
  }
}

close IN;

foreach my $key(sort keys %array) {
  my $cnt = scalar(@{$array{$key}{'col2'}});
  foreach (@{$array{$key}{'col2'}}) {
    $array{$key}{'ave2'} += $_;     
  }
  
  $array{$key}{'ave2'} /= $cnt;

  foreach (@{$array{$key}{'col3'}}) {
    $array{$key}{'ave3'} += $_;
  }
  $array{$key}{'ave3'} /= $cnt;

}

my $out = "output.txt";
open OUT,">",$out || die "Cannot write to this file!$!";
foreach my $key(sort keys %array) {
  print OUT "$key\t$array{$key}{'ave2'}\t$array{$key}{'ave3'}\n";

}

close OUT;

exit(0);

2楼2012-09-27 10:00:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 philip890220 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +8 majunge000 2026-08-11 10/500 2026-08-15 18:55 by Equinoxhua
[基金申请] filecode +8 cratir 2026-08-14 12/600 2026-08-15 18:08 by zyfgau
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +7 Ldrop2023 2026-08-13 7/350 2026-08-15 15:57 by mzhh2000
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +23 Lanmanbaby 2026-08-09 37/1850 2026-08-14 13:40 by Equinoxhua
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见