Sha256: 3b5640396e267e289b1d28086c39c340043a52f3bcda89f1f23b489662a2989e

Contents?: true

Size: 951 Bytes

Versions: 1

Compression:

Stored size: 951 Bytes

Contents

class Array
  # For reference:
  # https://www.mathsisfun.com/data/standard-deviation-formulas.html
  # Population standard deviation
  def stdevp
    return false unless self.length > 0
    arr = self
    # Step 1: Get the mean
    mean = arr.inject(:+).to_f / arr.length.to_f

    # 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

  # For reference:
  # http://stackoverflow.com/questions/27249327/how-to-merge-hashes-if-a-specified-keys-values-are-same-in-a-array
  # Credits to http://stackoverflow.com/users/390819/w0lf for the solution
  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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quick_codes-0.1.1 lib/overloads/array.rb