Frequencies<T>.from constructor
Frequencies<T>.from (
- Iterable<
T> iterable
Calculates frequencies of discrete items.
Uses ==
and hashCode
for counting values.
Example
// Four samples, two cats.
final frequencies = Frequencies.from(['dog', 'cat', 'sheep', 'cat']);
print("Probability of cat: ${frequencies.pdf('cat')"); // --> 0.5
Implementation
factory Frequencies.from(Iterable<T> iterable) {
final result = <T, double>{};
// Count relative frequencies of items and sum of relative frequencies
var n = 0;
for (var item in iterable) {
result[item] = (result[item] ?? 0.0) + 1.0;
n++;
}
// Normalize values (so the sum is 1.0).
for (var entry in result.entries) {
result[entry.key] = entry.value / n.toDouble();
}
return Frequencies._(result);
}