class StatisticalArray::StatsArray

Public Class Methods

new(ary, template=nil) click to toggle source
# File lib/statistical_array/statistical_array.rb, line 3
def initialize ary, template=nil
  @ary = Array(ary).flatten.compact
  @template_name = template || 'ArrayTemplate'
end

Public Instance Methods

avg()
Alias for: mean
max()
Alias for: maximum
maximum() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 16
def maximum
  @ary.max
end
Also aliased as: max
mean() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 20
def mean
  @ary.reduce(:+) / @ary.count.to_f
end
Also aliased as: avg
median() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 24
def median
  return nil if @ary.empty?
  n = @ary.size
  a = @ary.sort
  n.odd? ? a[(n-1)/2] : a[(n-1)/2,2].reduce(:+) / 2.0
end
min()
Alias for: minimum
minimum() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 12
def minimum
  @ary.min
end
Also aliased as: min
pop_std()
population_standard_deviation() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 31
def population_standard_deviation
  Math.sqrt @ary.reduce(0) { |i, j| i + (j - mean)**2 } / @ary.count
end
Also aliased as: pop_std
print() click to toggle source
sample_standard_deviation() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 35
def sample_standard_deviation
  Math.sqrt @ary.reduce(0) { |i, j| i + (j - mean)**2 } / (@ary.count - 1.5)
end
Also aliased as: std_dev
std_dev()
sum() click to toggle source
# File lib/statistical_array/statistical_array.rb, line 39
def sum
  @ary.reduce(:+)
end
Also aliased as: total
total()
Alias for: sum