On Sat, Jun 30, 2012 at 12:21 AM, John W. Krahn <jwkr...@shaw.ca> wrote: > lina wrote: >> >> On Thu, Jun 28, 2012 at 4:44 PM, John W. Krahn<jwkr...@shaw.ca> wrote: >>> >>> lina wrote: >>>> >>>> >>>> I have some data like: >>>> >>>> 0.35 3.41 1 >>>> 0.35 4.24 1 >>>> 0.35 4.35 2 >>>> 0.36 0.36 1 >>>> 0.36 1.32 1 >>>> 0.36 1.45 1 >>>> 0.36 1.46 1 >>>> >>>> >>>> wish the output look like >>>> >>>> 0.36 1.32 1.45 1.46 3.41 4.24 4.35 >>>> 0.35 0 0 0 0 1 1 2 >>>> 0.36 1 1 1 1 0 0 0 >>> >>> >>> $ echo "0.35 3.41 1 >>> >>> 0.35 4.24 1 >>> 0.35 4.35 2 >>> 0.36 0.36 1 >>> 0.36 1.32 1 >>> 0.36 1.45 1 >>> 0.36 1.46 1" | perl -e' >>> >>> my ( @columns, %data ); >>> while (<> ) { >>> my ( $row, $col, $val ) = split; >>> $data{ $row }{ $col } = $val; >>> push @columns, $col; >>> } >>> >>> @columns = sort { $a<=> $b } @columns; >> >> >> suppose there are duplications in the @columns, the data much more like: >> >> 0.35 1.32 3 >> 0.35 4.35 2 >> 0.36 0.36 1 >> 0.36 1.32 1 >> 0.36 1.45 1 >> 0.36 1.46 1 >> >> How can I remove the duplications, uniq them? > > > > $ echo "0.35 1.32 3 > > 0.35 4.35 2 > 0.36 0.36 1 > 0.36 1.32 1 > 0.36 1.45 1 > 0.36 1.46 1" | perl -e' > > my ( %columns, %data ); > while ( <> ) { > my ( $row, $col, $val ) = split; > $data{ $row }{ $col } = $val; > $columns{ $col } = 1;
This is smart. But the output is weird for the real file (see the below link), not the sample file. https://docs.google.com/open?id=0B_oe_t9o_2c3eFZsQ1NYMjJwZGc Thanks, > } > > my @columns = sort { $a <=> $b } keys %columns; > > > print " @columns\n"; > for my $row ( sort { $a <=> $b } keys %data ) { > print join( " ", $row, map $_ ? " $_" : " 0", @{ $data{ $row } }{ > @columns } ), "\n"; > } > ' > 0.36 1.32 1.45 1.46 4.35 > 0.35 0 3 0 0 2 > > 0.36 1 1 1 1 0 > > > > John > -- > Any intelligent fool can make things bigger and > more complex... It takes a touch of genius - > and a lot of courage to move in the opposite > direction. -- Albert Einstein > > -- > To unsubscribe, e-mail: beginners-unsubscr...@perl.org > For additional commands, e-mail: beginners-h...@perl.org > http://learn.perl.org/ > > -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/