Array#statistics
Basic descriptive statistics for an Array in ruby. Probably don’t want to run it on arrays that contain non-numeric objects. Haven’t tested it, but it looks mostly right.
class Array def statistics mean = sum.to_f / length i = length / 2 - 1 median = if length % 2 == 0 (self[i] + self[i + 1]).to_f / 2 else self[i] end { :n => length, :mean => mean, :median => median, :min => self.min, :max => self.max } end end
Here’s how it works:
>> [1, 2, 3].statistics => {:min=>1, :n=>3, :mean=>2.0, :max=>3, :median=>1} >> [0, 1, 2, 3].statistics => {:min=>0, :n=>4, :mean=>1.5, :max=>3, :median=>1.5}
Someone fix it for me if it’s buggy! It could use some robustness checks too. But for now it pleases me to say no more.
About this entry
You’re currently reading “Array#statistics,” an entry on e-huned.com
- Published:
- 02.25.09 / 12pm
- Category:
- personal
2 Comments
Jump to comment form | comments rss [?] | trackback uri [?]