Sha256: cc4a3fdbe5cb5e0945ac738b38981fe0921a7bc8eb8cb18aa01d52a9da7f5b13

Contents?: true

Size: 661 Bytes

Versions: 3

Compression:

Stored size: 661 Bytes

Contents

class Array
  def sum()
    self.inject(&:+)
  end

  def avg()
    if self.empty?
      nil
    else
      self.sum.to_f / self.size
    end
  end

  def stdev()
    avg = self.avg
    var = self.map{|val| (val - avg) ** 2}.sum
    if self.size > 1
      var /= self.size - 1
    end
    Math.sqrt(var)
  end

  def sterr()
    self.stdev / Math.sqrt(self.size)
  end

  def every?(&block)
    ret = true
    self.each do |elem|
      unless block.call(elem)
        ret = false
        break
      end
    end
    ret
  end

  def group_by()
    ret = Hash.new{ Array.new }
    self.each do |elem|
      ret[yield(elem)] += [elem]
    end

    ret
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jkr-0.2.2 lib/jkr/array.rb
jkr-0.2.1 lib/jkr/array.rb
jkr-0.1.0 lib/jkr/array.rb