Thread Schwarzsche Transformation oder wie sortiere ich Tabellen in Perl (7 answers)
Opened by Ramona2012 at 2012-05-03 15:38

Linuxer
 2012-05-03 16:08
#158006 #158006
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
Ich würde innerhalb des sort kein or verwenden, sondern || (doppelte Pipe).
edit: nach pqs Nachfrage und Nachschauen ist das eher ein Hinweis auf Basis persönlicher Gewöhnung gewesen.:edit

Hier mal mein Testbeispiel, mit dem es bei mir funktioniert.
Ist unter Umständen die Datenbasis nicht 100% sauber?
Sind evtl. nicht alle Spalten definiert/vorhanden?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /usr/bin/perl
use strict;
use warnings;

my @sorted =
  map { $_->[0] }
    sort {
        $a->[1] <=> $b->[1]     ||
        $a->[3] <=> $b->[3]     ||
        $a->[2] <=> $b->[2]
    }
    map { [ $_, (split /\s+/, $_)[1,5,7] ] } <DATA>;

# Kontrollausgabe
use Data::Dumper;
print Dumper \@sorted;


__DATA__
locus 1 transcript 3/12 confidence 11.000 length 238
locus 2 transcript 3/12 confidence 12.000 length 238
locus 5 transcript 3/12 confidence 15.000 length 238
locus 3 transcript 3/12 confidence 13.000 length 238
locus 6 transcript 3/12 confidence 16.000 length 238
locus 4 transcript 3/12 confidence 14.000 length 238
locus 1 transcript 3/12 confidence 14.000 length 138

Last edited: 2012-05-03 16:42:27 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Schwarzsche Transformation oder wie sortiere ich Tabellen in Perl