【问题标题】:correlation values generated through excel and i want to make matrix even look通过excel生成的相关值,我想让矩阵看起来更均匀
【发布时间】:2014-11-29 05:38:12
【问题描述】:

我通过 excel 生成了一个相关矩阵,它有以下类型的输出:

                 tae-miR1127    tae-miR1131   tae-miR164    tae-miR5084     tae-miR1138
tae-miR1127            1                
tae-miR1131       0.335050711        1          
tae-miR164        0.167933504   -0.134901833       1        
tae-miR5084      -0.140902598   0.119780666   -0.189285165       1  
tae-miR1138      -0.031264072   0.16572515    -0.178381246    0.080697284       1

我想让这个输出像 -

                 tae-miR1127    tae-miR1131     tae-miR164     tae-miR5084      tae-miR1138
tae-miR1127            1        0.335050711     0.167933504    -0.140902598     -0.031264072
tae-miR1131      0.335050711          1         -0.134901833    0.119780666      0.16572515
tae-miR164       0.167933504    -0.134901833         1          -0.189285165    -0.178381246
tae-miR5084     -0.140902598    0.119780666     -0.189285165        1            0.080697284
tae-miR1138     -0.031264072    0.16572515      -0.178381246    0.080697284          1

【问题讨论】:

    标签: linux perl shell


    【解决方案1】:

    好问题。你可以试试这个:

    use warnings;
    use strict;
    
    my %h;
    my @a;
    while (<DATA>) {
        if ($. == 1) {
            @a=split;
            printLine([' ', @a]);
            next;
        }
        my @b=split;
        for (1..$#b) {
            $h{$b[0]}{$a[($_-1)]}=$b[$_];
            $h{$a[($_-1)]}{$b[0]}=$b[$_];
        }
    }
    for (@a) {
        printLine([$_, @{$h{$_}}{@a}]);
    }
    
    sub printLine {
        my ($a) = @_;
    
        for (@$a) {
            printf "%-16s",$_;
        }
        print "\n";
    }
    
    __DATA__
                     tae-miR1127    tae-miR1131   tae-miR164    tae-miR5084     tae-miR1138
    tae-miR1127            1                
    tae-miR1131       0.335050711        1          
    tae-miR164        0.167933504   -0.134901833       1        
    tae-miR5084      -0.140902598   0.119780666   -0.189285165       1  
    tae-miR1138      -0.031264072   0.16572515    -0.178381246    0.080697284       1
    

    输出:

                    tae-miR1127     tae-miR1131     tae-miR164      tae-miR5084     tae-miR1138     
    tae-miR1127     1               0.335050711     0.167933504     -0.140902598    -0.031264072    
    tae-miR1131     0.335050711     1               -0.134901833    0.119780666     0.16572515      
    tae-miR164      0.167933504     -0.134901833    1               -0.189285165    -0.178381246    
    tae-miR5084     -0.140902598    0.119780666     -0.189285165    1               0.080697284     
    tae-miR1138     -0.031264072    0.16572515      -0.178381246    0.080697284     1               
    

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多