Robert Klemme
6/6/2008 9:04:00 AM
2008/6/6 Justin To <tekmc@hotmail.com>:
> I've been looking around to learn about histograms, and haven't had any
> luck... can someone tell me how a histogram would work for something
> like this:
>
> Name, Age
> Bob, 2
> Jim, 2
> Eric, 4
> Rob, 5
>
> How would I use a histogram to get a result like this:
>
> Age | Names
> 2 | Bob, Jim
> 4 | Eric
> 5 | Rob
Here's a variant:
10:43:33 $ /c/Temp/hist.rb
Age | Name
2 | Bob,Jim
4 | Eric
5 | Rob
11:03:55 $ cat /c/Temp/hist.rb
#!/bin/env ruby
hist = Hash.new {|h,k| h[k]=[]}
DATA.each do |line|
name, age = line.split /,\s*/
hist[Integer(age)] << name rescue nil
end
printf "%-4s | %s\n", "Age", "Name"
hist.sort_by {|k,| k}.each do |k,v|
printf "%4d | %s\n", k, v.join(',')
end
__END__
Name, Age
Bob, 2
Jim, 2
Eric, 4
Rob, 5
11:04:08 $
Kind regards
robert
--
use.inject do |as, often| as.you_can - without end