stats-collector v0.0.9
stats-collector
Description
Collect stats about numbers. This library provides a few different default collectors, but allows you to add your own "stat collectors" by exposing an API that lets you pass in reducer-like functions that act on numbers passed to it.
stats-collector comes in 2 formats: a
node.js library
and a
command line tool.
For examples and api documentation, continue reading below.
Node.js Library
Getting Started
Install the module with: npm install stats-collector
Usage (Method 1)
import * as lib from 'stats-collector';
const stats = new lib.NumberStats();
stats.processAll([1,2,3,4,5]);
console.log(stats.get());Usage (Method 2)
import NumberStats from 'stats-collector/lib/NumberStats';
const stats = new StatsCollector();
stats.process(1);
stats.process(2);
stats.process(3);
stats.processAll([4, 5]);
console.log(stats.get());Usage (Different types of collectors)
import * as lib from 'stats-collector';
const c1 = new lib.BaseStats();            // 0 default collectors
const c2 = new lib.BasicNumberStats();     // 5 default collectors
const c3 = new lib.NumberStats();          // 8 default collectors
const c4 = new lib.AdvancedNumberStats();  // 21 default collectors
const collectors = lib.collectors; // some collector functions
const filters = lib.filters; // some filter functions
console.log(c1.get(), c2.get(), c3.get(), c4.get(), collectors, filters);Example Output
The following table shows you the results of initializing a stats collector, then running the following statments:
stats.processAll([1, 2, 3, 4, 5]);
const results = stats.get();| Collector Type | Results | 
|---|---|
| BaseStats | {} | 
| BasicNumberStats | { "count": 5, "max": 5, "mean": 3, "min": 1, "sum": 15} | 
| NumberStats | { "count": 5, "max": 5, "mean": 3, "min": 1, "powerSumAvgRunning": 11, "product": 120, "standardDeviationRunning": 1.5811388300841898, "sum": 15, "varianceRunning": 2.5} | 
| AdvancedNumberStats | { "amean": 3, "count": 5, "count_even": 2, "count_float": 0, "count_integer": 5, "count_negative": 0, "count_nonZero": 5, "count_odd": 3, "count_positive": 5, "count_prime": 3, "count_zero": 0, "gmean": 2.605171084697352, "hmean": 2.18978102189781, "max": 5, "mean": 3, "median": 3, "midRange": 3, "min": 1, "powerSumAvgRunning": 11, "product": 120, "range": 4, "standardDeviationRunning": 1.5811388300841898, "standardDeviationStable": 1.5811388300841898, "sum": 15, "sumOfRecipricals": 2.283333333333333, "sumOfSquaredDeviationsStable": 10, "varianceRunning": 2.5, "varianceStable": 2.5} | 
API Documentation
Read the API Docs by visiting the project site here:
Command Line Tool
Installation
The command line utility can be install via npm install -g stats-collector.
After doing so, you will have access to stats-collector from the command line.
$ stats-collector -h
  Usage: stats-collector [options] <values>
  Options:
    -h, --help                     output usage information
    -v, --version                  output the version number
    -c, --collectors [collectors]  add collectors
    -f, --filters [filters]        add filters
    -t, --type [type]              type of stats [empty,basic,stats,advanced]
    -p, --pipe                     whether or not to accept piped data from stdinExamples
Default behavior
Here is the default behavior when passing in 5 numbers.
$ stats-collector 1,2,3,4,5
{
  "count": 5,
  "max": 5,
  "mean": 3,
  "min": 1,
  "powerSumAvgRunning": 11,
  "product": 120,
  "standardDeviationRunning": 1.5811388300841898,
  "sum": 15,
  "varianceRunning": 2.5
}Get "advanced" stats about 10 random numbers
The example uses the --pipe functionality:
$ for i in {1..10}; do echo $RANDOM; done | stats-collector -t advanced --pipe
{
  "amean": 15239.3,
  "count": 10,
  "count_even": 7,
  "count_float": 0,
  "count_integer": 10,
  "count_negative": 0,
  "count_nonZero": 10,
  "count_odd": 3,
  "count_positive": 10,
  "count_prime": 1,
  "count_zero": 0,
  "gmean": 9896.019927976335,
  "hmean": 5947.676087129243,
  "max": 30937,
  "mean": 15239.3,
  "median": 26478,
  "midRange": 16430.5,
  "min": 1924,
  "powerSumAvgRunning": 360452286.7,
  "product": 9.007527812504433e+39,
  "range": 29013,
  "standardDeviationRunning": 11935.754978215662,
  "standardDeviationStable": 11935.754978215662,
  "sum": 152393,
  "sumOfRecipricals": 0.0016813289515950568,
  "sumOfSquaredDeviationsStable": 1282160222.1,
  "varianceRunning": 142462246.89999998,
  "varianceStable": 142462246.89999998
}See Also
- covariance
 - d3-array
 - diversity
 - ezstats
 - fast-stats
 - gauss
 - math-statistics
 - stats-analysis
 - stats-incremental
 - stats-lite
 - stats-percentile
 - statsjs
 - stream-statistics
 - summary
 - summary-statistics
 - very-simple-statistics
 
License
Copyright (c) 2015 skratchdot
Licensed under the MIT license.


