Sha256: feb3696511e2abce13a3405afe51b8e8ba07c602736177b33b96fe23278dcaae
Contents?: true
Size: 1.03 KB
Versions: 7
Compression:
Stored size: 1.03 KB
Contents
#!/usr/bin/env ruby # -*- encoding: utf-8 -*- # Copyright muflax <mail@muflax.com>, 2013 # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html> module Enumerable def average self.sum.to_f / self.size.to_f end alias :mean :average alias :avg :average def geometric_mean self.reduce(:*).to_f ** (1.0 / self.size.to_f) end def median self.percentile 0.5 end def median_by &block self.percentile_by 0.5, &block end def percentile percent self.sort[(self.size * percent).round] end def percentile_by percent, &block self.sort_by(&block)[(self.size * percent).round] end def triangle self.to_a.triangle end def histogram &block histo = vivaHash 0 self.each do |el| histo[block.call(el)] += 1 end histo end def count_by &block self.histogram(&block).sort_by(&:second).to_h end end class Object def in? other other.include?(self) rescue NoMethodError raise ArgumentError.new("The parameter passed to #in? must respond to #include?") end end
Version data entries
7 entries across 7 versions & 1 rubygems