#12 Look into weird results with means for iterators with min/max
Statistics for rust iterators.
Extra iterator methods for common statistics operations.
To most easily get the functionality of this crate, import the [Iterstats
] trait. See the methods belonging to the trait for all available functionality.
// import the `Iterstats` trait into scope
use iterstats::Iterstats;
// start with your dataset
let data = [1f32, 2., 3., 4.];
// say you want the mean
let mean = data.iter().mean();
assert_eq!(mean, 2.5);
// get the variance
let variance = data.iter().variance();
assert_eq!(variance, 1.25);
// or standard deviation
let stddev = data.iter().stddev();
assert_eq!(stddev, 1.25f32.sqrt());
// or the zscore of each data point
let zscores = data.iter().zscore().collect::<Vec<_>>();
assert_eq!(zscores, vec![-1.3416407, -0.4472136, 0.4472136, 1.3416407]);
Shoutout to
itertools
, which was one of the inspirations for this project.