module Enumerable
Public Instance Methods
mean(default = nil)
click to toggle source
Calculates the mean of a numeric collection.
@param default [Object] an optional default return value if there are
no elements. It is nil by default.
@return The mean of the elements or the default value if there are no
elements.
@example
[1, 2, 3, 4, 5].mean #=> 3 [].mean #=> nil [].mean(0) #=> 0
# File lib/summarytools/core_extensions/enumerable/mean.rb, line 14 def mean(default = nil) coll_size = to_a.size coll_size > 0 ? reduce(&:+) / coll_size.to_f : default end
median(default = nil)
click to toggle source
# File lib/summarytools/core_extensions/enumerable/median.rb, line 3 def median(default = nil) sorted = sort (sorted[(length - 1) / 2] + sorted[length / 2]) / 2.0 end
sd()
click to toggle source
# File lib/summarytools/core_extensions/enumerable/sd.rb, line 8 def sd Math.sqrt(variance) end
sum(identify = nil)
click to toggle source
Sums up elements of a collection by invoking their `+` method.
@param default [Object] an optional default return value if there are
no elements. It is nil by default.
@return The sum of the elements or the default value if there are no
elements.
@example
[1, 2, 3, 4, 5].sum #=> 15 ["a", "b", "c"].sum #=> "abc" [].sum #=> nil [].sum(0) #=> 0
# File lib/summarytools/core_extensions/enumerable/sum.rb, line 15 def sum(identify = nil) reduce(&:+) || default end
variance()
click to toggle source
# File lib/summarytools/core_extensions/enumerable/sd.rb, line 3 def variance sum = inject(0) { |accum, i| accum + (i - mean) ** 2} sum/(length - 1).to_f end