benben has asked for the wisdom of the Perl Monks concerning the following question:
Hi, I have a hash of arrays like this:
%HoA = ( A => [2.34, 4.12, 5.32], B => [1.42, 8.15], C => [8.42, 0.23, 0.45, 6.43], ###...and so on );
I want to calculate average of each array and display the result like:
A 3.93 B 4.79 ...etc.
I'm not sure how to do this though... that's what I've written so far: Any suggetions?
my $average; foreach my $key (keys %HoA) { foreach my $value (values %HoA) { my @Array = $value; $average = average (\@Array); } print $key, "\t", $average, "\n", } sub average { my ($array_ref) = @_; my $sum; my $count = scalar @$array_ref; foreach (@$array_ref) { $sum += $_; } my $av = $sum/$count; return $av; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: calculating array average in HoA
by choroba (Cardinal) on Apr 21, 2012 at 20:38 UTC | |
|
Re: calculating array average in HoA
by aaron_baugher (Curate) on Apr 21, 2012 at 21:28 UTC | |
|
Re: calculating array average in HoA
by jwkrahn (Abbot) on Apr 22, 2012 at 03:15 UTC | |
|
Re: calculating array average in HoA
by JavaFan (Canon) on Apr 21, 2012 at 20:52 UTC | |
by stevieb (Canon) on Apr 21, 2012 at 21:12 UTC | |
by lidden (Curate) on Apr 22, 2012 at 04:24 UTC | |
by stevieb (Canon) on Apr 22, 2012 at 12:49 UTC | |
|
Re: calculating array average in HoA
by Kenosis (Priest) on Apr 21, 2012 at 21:28 UTC |