Class: Array

Inherits:
Object
  • Object
show all
Defined in:
lib/overloads/array.rb

Instance Method Summary collapse

Instance Method Details

#aveObject

Average of multiple numbers



3
4
5
6
7
8
9
# File 'lib/overloads/array.rb', line 3

def ave
  return false unless self.length > 0

  arr = self

  arr.inject(:+).to_f / arr.length.to_f
end

#merge_hashes_using_key(key) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/overloads/array.rb', line 36

def merge_hashes_using_key(key)
  return false unless self.length > 0

  arr = self

  arr.group_by{ |h| h[key] }.collect{ |_, hs| hs.reduce(:merge) }
end

#stdevpObject

For reference: www.mathsisfun.com/data/standard-deviation-formulas.html Population standard deviation



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/overloads/array.rb', line 14

def stdevp
  return false unless self.length > 0

  arr = self
  # Step 1: Get the mean
  mean = arr.ave

  # Step 2: Subtract the mean and square the result
  step_2 = arr.reduce([]) do |i, n|
    i << (n.to_f - mean) ** 2
  end

  # Step 3: Get mean of step 2
  step_3 = step_2.inject(:+).to_f / step_2.length.to_f

  # Step 4: Square root of step 3
  Math.sqrt(step_3).to_f
end