Method: Rust::Descriptive.median
- Defined in:
- lib/rust/stats/descriptive.rb
.median(data) ⇒ Object
Computes the median of the given data.
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/rust/stats/descriptive.rb', line 44 def median(data) raise TypeError, "Expecting Array of numerics" if !data.is_a?(Array) || !data.all? { |e| e.is_a?(Numeric) } sorted = data.sort if data.size == 0 return Float::NAN elsif data.size.odd? return sorted[data.size / 2] else i = (data.size / 2) return (sorted[i - 1] + sorted[i]) / 2.0 end end |