[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