[Milan-pm] R: incolonnare dati

Paola Bisignano paola.bisignano at gmail.com
Tue Nov 10 03:30:31 PST 2009


grazie a tutti!!!!! vi AMO!!!! mi avete liberata dalla demenza del mio
capo ossessivo oppressivo !!!!!!!!!!!!!!!
siete l'unica luce in questo delirio !!!!la mia unica comunicazione
con il mondo mentre lavoro con un sociopatico :-) ........I BELIEVE I
CAN FLYYYYYYYYYYYYYYYYYYYYYYYYYY

2009/11/8 Max Flebus <max.flebus at it.easynet.net>:
> Ho rimesso un po' di escape ("\") che erano spariti nella mail dall'ottimo
> esempio di Oha e aggiunta l'apertura dei file .xxx (ovviamente da modificare
> con il suffisso giusto), tanto perchè Paola abbia la pappa pronta :)
> Un po' di commenti non fanno mai male :)
>
> MaX
> use strict;
> use warnings;
> use Data::Dumper;
> my %data;
> my %cols;
> while(<*.xxx>)  # ottengo la lista dei file con suffisso .xxx
> {
>   open "FILE", $_ or die;   # Apro il file o morte!
>   while (<FILE>)            # lo leggo
>   {
>    chomp;
>    my @cols = split /\s+/;  # separo le colonne
>    my $first = shift @cols or next; # tengo la prima colonna
>    my $second = shift @cols;        # e la seconda
>    my %other = map { /^([^(]+)\((\d+)\)\*?/; $cols{$2}++; ($2,$1); } @cols;
> # il resto lo metto nell'hash %other ad esempio H380(138) diventa
> $other{138} = H380
>    $other{__perc} = $second;        # metto in %other anche il valore della
> seconda colonna
>    $data{$first} = \%other;         # metto in nell'hash $data l'hash %other
>   }
> }
>
> foreach my $k (sort keys %data)     # $k sono tutti i valori della prima
> colonna
> {
>    my $other = $data{$k};           # recupero l'hash
>    print $k, "\t", $other->{__perc}, "\t"; # stampo l'intestazione della
> riga
>    foreach my $c (sort { $a <=> $b } keys %cols) { # itero sulle
> colonne (ordinate)
>        my $v = $other->{$c};        # prendo la colonna c
>        print $v ? "$v($c)\t" : "-       \t"; # e ne stampo il valore o degli
> spazi bianchi
>    }
>    print "\n";                      # nuova riga
> }
>
> _______________________________________________
> Milan-pm mailing list
> Milan-pm at pm.org
> http://mail.pm.org/mailman/listinfo/milan-pm
>
>


More information about the Milan-pm mailing list