Add frequency count to extra::stat. #8281

This commit is contained in:
Mihnea Dobrescu-Balaur 2013-08-07 09:46:09 -07:00
parent 597b3fd03f
commit 17c12bbd1b

View File

@ -10,6 +10,7 @@
use sort;
use std::cmp;
use std::hashmap;
use std::io;
use std::num;
@ -352,6 +353,16 @@ pub fn write_boxplot(w: @io::Writer, s: &Summary, width_hint: uint) {
w.write_str(histr);
}
/// Returns a HashMap with the number of occurences of every element in the
/// sequence that the iterator exposes.
pub fn freq_count<T: Iterator<U>, U: Eq+Hash>(mut iter: T) -> hashmap::HashMap<U, uint> {
let mut map = hashmap::HashMap::new::<U, uint>();
for elem in iter {
map.insert_or_update_with(elem, 1, |_, count| *count += 1);
}
map
}
// Test vectors generated from R, using the script src/etc/stat-test-vectors.r.
#[cfg(test)]