Module: GeneValidator::ExtraArrayMethods
- Included in:
- Array
- Defined in:
- lib/genevalidator/ext/array.rb
Overview
extention of the Array Class (i.e new methods for vectors)
Instance Method Summary collapse
- #mean ⇒ Object
- #median ⇒ Object
- #mode ⇒ Object
- #sample_variance ⇒ Object
- #standard_deviation ⇒ Object
- #sum ⇒ Object
Instance Method Details
#mean ⇒ Object
8 9 10 |
# File 'lib/genevalidator/ext/array.rb', line 8 def mean sum / length.to_f end |
#median ⇒ Object
12 13 14 15 16 |
# File 'lib/genevalidator/ext/array.rb', line 12 def median sorted = sort len = sorted.length (sorted[(len - 1) / 2] + sorted[len / 2]) / 2.0 end |
#mode ⇒ Object
18 19 20 21 |
# File 'lib/genevalidator/ext/array.rb', line 18 def mode freq = inject(Hash.new(0)) { |h, v| h[v] += 1; h } sort_by { |v| freq[v] }.last end |
#sample_variance ⇒ Object
23 24 25 26 27 |
# File 'lib/genevalidator/ext/array.rb', line 23 def sample_variance m = mean sum = inject(0) { |accum, i| accum + (i - m)**2 } sum / (length - 1).to_f end |
#standard_deviation ⇒ Object
29 30 31 |
# File 'lib/genevalidator/ext/array.rb', line 29 def standard_deviation Math.sqrt(sample_variance) end |
#sum ⇒ Object
4 5 6 |
# File 'lib/genevalidator/ext/array.rb', line 4 def sum inject(0) { |accum, i| accum + i } end |