Class: StatisticalArray::StatsArray
- Inherits:
-
Object
- Object
- StatisticalArray::StatsArray
- Defined in:
- lib/statistical_array/aliases.rb,
lib/statistical_array/statistical_array.rb
Instance Method Summary collapse
- #avg ⇒ Object
-
#initialize(ary, template = nil) ⇒ StatsArray
constructor
A new instance of StatsArray.
- #max ⇒ Object
- #maximum ⇒ Object
- #mean ⇒ Object
- #median ⇒ Object
- #min ⇒ Object
- #minimum ⇒ Object
- #pop_std ⇒ Object
- #population_standard_deviation ⇒ Object
- #print ⇒ Object
- #sample_standard_deviation ⇒ Object
- #std_dev ⇒ Object
- #sum ⇒ Object
- #total ⇒ Object
Constructor Details
#initialize(ary, template = nil) ⇒ StatsArray
Returns a new instance of StatsArray.
3 4 5 6 |
# File 'lib/statistical_array/statistical_array.rb', line 3 def initialize ary, template=nil @ary = Array(ary).flatten.compact @template_name = template || 'ArrayTemplate' end |
Instance Method Details
#avg ⇒ Object
3 |
# File 'lib/statistical_array/aliases.rb', line 3 alias_method :avg, :mean |
#max ⇒ Object
5 |
# File 'lib/statistical_array/aliases.rb', line 5 alias_method :max, :maximum |
#maximum ⇒ Object
16 17 18 |
# File 'lib/statistical_array/statistical_array.rb', line 16 def maximum @ary.max end |
#mean ⇒ Object
20 21 22 |
# File 'lib/statistical_array/statistical_array.rb', line 20 def mean @ary.reduce(:+) / @ary.count.to_f end |
#median ⇒ Object
24 25 26 27 28 29 |
# 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 ⇒ Object
4 |
# File 'lib/statistical_array/aliases.rb', line 4 alias_method :min, :minimum |
#minimum ⇒ Object
12 13 14 |
# File 'lib/statistical_array/statistical_array.rb', line 12 def minimum @ary.min end |
#pop_std ⇒ Object
6 |
# File 'lib/statistical_array/aliases.rb', line 6 alias_method :pop_std, :population_standard_deviation |
#population_standard_deviation ⇒ Object
31 32 33 |
# 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 |
#print ⇒ Object
8 9 10 |
# File 'lib/statistical_array/statistical_array.rb', line 8 def print Kernel.const_get(@template_name.to_s).render self end |
#sample_standard_deviation ⇒ Object
35 36 37 |
# 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 |
#std_dev ⇒ Object
7 |
# File 'lib/statistical_array/aliases.rb', line 7 alias_method :std_dev, :sample_standard_deviation |
#sum ⇒ Object
39 40 41 |
# File 'lib/statistical_array/statistical_array.rb', line 39 def sum @ary.reduce(:+) end |
#total ⇒ Object
8 |
# File 'lib/statistical_array/aliases.rb', line 8 alias_method :total, :sum |