On 30 Mar 2005, at 11:14, peajoe wrote: > Hi Everybody, > > I am looking to do some basic statistics in ruby. Mean, Variance, > Standard deviation, etc. Does anyone know if there is a gem or a > library available for this? I have some code like this in the Production Log Analyzer, its pretty small module Enumerable ## # Sum of all the elements of the Enumerable def sum return self.inject(0) { |acc, i| acc + i } end ## # Average of all the elements of the Enumerable # # The Enumerable must respond to #length def average return self.sum / self.length.to_f end ## # Sample variance of all the elements of the Enumerable # # The Enumerable must respond to #length def sample_variance avg = self.average sum = self.inject(0) { |acc, i| acc + (i - avg) ** 2 } return (1 / self.length.to_f * sum) end ## # Standard deviation of all the elements of the Enumerable # # The Enumerable must respond to #length def standard_deviation return Math.sqrt(self.sample_variance) end end And some tests: class TestEnumerable < Test::Unit::TestCase def test_sum assert_equal 45, (1..9).sum end def test_average # Ranges don't have a length assert_in_delta 5.0, (1..9).to_a.average, 0.01 end def test_sample_variance assert_in_delta 6.6666, (1..9).to_a.sample_variance, 0.0001 end def test_standard_deviation assert_in_delta 2.5819, (1..9).to_a.standard_deviation, 0.0001 end end > More exactly, I want to take test scores for students and conver them > to > A, B, C, D, F. In order to calculate Grade Point Averages. -- Eric Hodel - drbrain / segment7.net - http://segment7.net FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04