in reply to Find highest value
To find a maximum, you can use List::Util.
The following code returns "$chr $begin $end $class" if the class has the maximal total, or 'undefined' instead of the class number if there are more classes having the same maximum. Tweak it to serve your needs:
Updated code.#!/usr/bin/perl use warnings; use strict; use List::Util qw/max/; <>; # skip header for my $line (<>){ my ($chr, $nr, $begin, $end, @values) = split ' ', $line; my %total; while (@values) { my $class = shift @values; my $total = shift @values; $total{$class} = $total; } my $max = max values %total; my @maxes = grep $total{$_} == $max, keys %total; if (@maxes == 1) { print "$chr $begin $end $maxes[0]\n"; } else { print "$chr $begin $end undefined\n"; } }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Find highest value
by linseyr (Acolyte) on Sep 19, 2012 at 14:34 UTC |