pub struct Frequencies<T> { /* private fields */ }Expand description
A commutative data structure for exact frequency counts.
Implementations§
Source§impl<T: Eq + Hash> Frequencies<T>
impl<T: Eq + Hash> Frequencies<T>
Sourcepub fn new() -> Frequencies<T>
pub fn new() -> Frequencies<T>
Create a new frequency table with no samples.
pub fn with_capacity(capacity: usize) -> Self
Sourcepub fn cardinality(&self) -> u64
pub fn cardinality(&self) -> u64
Return the cardinality (number of unique elements) in the data.
Sourcepub fn most_frequent(&self) -> (Vec<(&T, u64)>, u64)
pub fn most_frequent(&self) -> (Vec<(&T, u64)>, u64)
Return a Vec of elements, their corresponding counts in
descending order, and the total count.
Sourcepub fn least_frequent(&self) -> (Vec<(&T, u64)>, u64)
pub fn least_frequent(&self) -> (Vec<(&T, u64)>, u64)
Return a Vec of elements, their corresponding counts in
ascending order, and the total count.
Sourcepub fn par_frequent(&self, least: bool) -> (Vec<(&T, u64)>, u64)
pub fn par_frequent(&self, least: bool) -> (Vec<(&T, u64)>, u64)
Return a Vec of elements, their corresponding counts in order
based on the least parameter, and the total count. Uses parallel sort.
Sourcepub fn unique_values(&self) -> UniqueValues<'_, T> ⓘ
pub fn unique_values(&self) -> UniqueValues<'_, T> ⓘ
Return an iterator over the unique values of the data.
Sourcepub fn top_n(&self, n: usize) -> Vec<(&T, u64)>where
T: Ord,
pub fn top_n(&self, n: usize) -> Vec<(&T, u64)>where
T: Ord,
Get the top N most frequent items without sorting the entire vector
This is much faster than most_frequent() when you only need a few items
Sourcepub fn bottom_n(&self, n: usize) -> Vec<(&T, u64)>where
T: Ord,
pub fn bottom_n(&self, n: usize) -> Vec<(&T, u64)>where
T: Ord,
Similar to top_n but for least frequent items
Sourcepub fn items_with_count(&self, n: u64) -> Vec<&T>
pub fn items_with_count(&self, n: u64) -> Vec<&T>
Get items with exactly n occurrences
Sourcepub fn total_count(&self) -> u64
pub fn total_count(&self) -> u64
Get the sum of all counts
Sourcepub fn increment_by(&mut self, v: T, count: u64)
pub fn increment_by(&mut self, v: T, count: u64)
Add specialized method for single increment
Trait Implementations§
Source§impl<T: Clone> Clone for Frequencies<T>
impl<T: Clone> Clone for Frequencies<T>
Source§fn clone(&self) -> Frequencies<T>
fn clone(&self) -> Frequencies<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Debug + Eq + Hash> Debug for Frequencies<T>
Available on debug-assertions enabled only.
impl<T: Debug + Eq + Hash> Debug for Frequencies<T>
Source§impl<T: Eq + Hash> Default for Frequencies<T>
impl<T: Eq + Hash> Default for Frequencies<T>
Source§fn default() -> Frequencies<T>
fn default() -> Frequencies<T>
Source§impl<T: Eq + Hash> Extend<T> for Frequencies<T>
impl<T: Eq + Hash> Extend<T> for Frequencies<T>
Source§fn extend<I: IntoIterator<Item = T>>(&mut self, it: I)
fn extend<I: IntoIterator<Item = T>>(&mut self, it: I)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl<T: Eq + Hash> FromIterator<T> for Frequencies<T>
impl<T: Eq + Hash> FromIterator<T> for Frequencies<T>
Source§fn from_iter<I: IntoIterator<Item = T>>(it: I) -> Frequencies<T>
fn from_iter<I: IntoIterator<Item = T>>(it: I) -> Frequencies<T>
Auto Trait Implementations§
impl<T> Freeze for Frequencies<T>
impl<T> RefUnwindSafe for Frequencies<T>where
T: RefUnwindSafe,
impl<T> Send for Frequencies<T>where
T: Send,
impl<T> Sync for Frequencies<T>where
T: Sync,
impl<T> Unpin for Frequencies<T>where
T: Unpin,
impl<T> UnwindSafe for Frequencies<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more