compute-iqr

Computes the interquartile range for an array of values.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
compute-iqr
1.1.08 years ago8 years agoMinified + gzip package size for compute-iqr in KB

Readme

Interquartile Range
!NPM versionnpm-imagenpm-url !Build Statustravis-imagetravis-url !Coverage Statuscoveralls-imagecoveralls-url !Dependenciesdependencies-imagedependencies-url
Computes the interquartile range (iqr) for an array of values.

Installation

$ npm install compute-iqr

For use in the browser, use browserify.

Usage

To use the module,
var iqr = require( 'compute-iqr' );

iqr( arr, opts )

Computes the interquartile range provided an input array.
var unsorted = [ 8, 2, 3, 9, 5, 1, 4, 10, 7, 0, 6 ];

var r = iqr( unsorted );
// returns 6

If the input array is already sorted in ascending order, set the sorted flag to true.
var sorted = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];

var r = iqr( sorted, {'sorted': true} );
// returns 6

Additional options are the same as for the quantile module.

Examples

var data = new Array( 100 );

for ( var i = 0; i < data.length; i++ ) {
	data[ i ] = Math.round( Math.random()*100 );
}

console.log( iqr( data ) );

To run the example code from the top-level application directory,
$ node ./examples/index.js

Notes

If the input array is not sorted in ascending order, the function is O( N log( N ) ). If the input array is sorted, the function is O(1).

Tests

Unit

Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test

All new feature development should have corresponding unit tests to validate correct functionality.

Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-cov

License

MIT license.

Copyright

Copyright © 2014. Athan Reines.