statistics 1.0.10 statistics: ^1.0.10 copied to clipboard
Statistics package for easy and efficient data manipulation with many built-in mathematical functions and tools.
statistics #
Statistics package for easy and efficient data manipulation with many built-in mathematical functions and tools.
API Documentation #
See the API Documentation for a full list of functions, classes and extension.
Usage #
Numeric extension: #
import 'package:statistics/statistics.dart';
void main() {
var ns = [10, 20.0, 30];
print('ns: $ns');
var mean = ns.mean;
print('mean: $mean');
var sdv = ns.standardDeviation;
print('sdv: $sdv');
var squares = ns.square;
print('squares: $squares');
}
OUTPUT:
ns: [10, 20.0, 30]
mean: 20.0
sdv: 8.16496580927726
squares: [100.0, 400.0, 900.0]
Statistics #
The class Statistics, that have many pre-computed statistics, can be generated from a numeric collection:
import 'package:statistics/statistics.dart';
void main() {
var ns = [10, 20.0, 25, 30];
var statistics = ns.statistics;
print('Statistics.max: ${ statistics.max }');
print('Statistics.min: ${ statistics.min }');
print('Statistics.mean: ${ statistics.mean }');
print('Statistics.standardDeviation: ${ statistics.standardDeviation }');
print('Statistics.sum: ${ statistics.sum }');
print('Statistics.center: ${ statistics.center }');
print('Statistics.median: ${statistics.median} -> ${statistics.medianLow} , ${statistics.medianHigh}');
print('Statistics.squaresSum: ${ statistics.squaresSum }');
print('Statistics: $statistics');
}
OUTPUT:
Statistics.max: 30
Statistics.min: 10
Statistics.mean: 21.25
Statistics.standardDeviation: 22.5
Statistics.sum: 85.0
Statistics.center: 25
Statistics.median: 22.5 -> 20.0 , 25
Statistics.squaresSum: 2025.0
Statistics: {~21.25 +-22.5 [10..(25)..30] #4}
CSV #
To generate a CSV document, just use the extension generateCSV in your data collection.
You can pass the parameter separator
to change the value separator (default: ,
).
import 'package:statistics/statistics.dart';
void main() {
var categories = <String, List<double?>>{
'a': [10.0, 20.0, null],
'b': [100.0, 200.0, 300.0]
};
var csv = categories.generateCSV();
print(csv);
}
OUTPUT:
#,a,b
1,10.0,100.0
2,20.0,200.0
3,0.0,300.0
Tools #
Parsers:
- parseDouble
- parseInt
- parseNum
- parseDateTime
- All parses accepts a
dynamic
value as input and have a default value parameterdef
.
Formatters:
- formatDecimal
- DateTimeExtension.formatToYMD
- DateTimeExtension.formatToYMDHm
- DateTimeExtension.formatToYMDHms
- DateTimeExtension.formatToYMDHmZ
- DateTimeExtension.formatToYMDHmsZ
Extension:
- StringExtension.splitLines
- StringExtension.splitColumns
- StringExtension.containsAny
- IterableIterableExtension.toKeysMap
- IterableStringExtension.filterLines
- IterableStringExtension.toIntsList
- IterableStringExtension.toDoublesList
- IterableStringExtension.toNumsList
See the API Documentation for a full list of functions, extension and classes.
Test Coverage #
This package aims to always have a high test coverage percentage, over 95%. With that the package can be a reliable tool to support your important projects.
Source #
The official source code is hosted @ GitHub:
Features and bugs #
Please file feature requests and bugs at the issue tracker.
Contribution #
Any help from the open-source community is always welcome and needed:
- Found an issue?
- Please fill a bug report with details.
- Wish a feature?
- Open a feature request with use cases.
- Are you using and liking the project?
- Promote the project: create an article, do a post or make a donation.
- Are you a developer?
- Fix a bug and send a pull request.
- Implement a new feature.
- Improve the Unit Tests.
- Have you already helped in any way?
- Many thanks from me, the contributors and everybody that uses this project!
If you donate 1 hour of your time, you can contribute a lot, because others will do the same, just be part and start with your 1 hour.
Author #
Graciliano M. Passos: gmpassos@GitHub.
License #
See Also #
Take a look at SciDart, an experimental cross-platform scientific library for Dart by Angelo Polotto.