compute-midmean
v1.0.3
Published
Computes the interquartile mean (midmean) of a numeric array.
Downloads
688
Readme
Midmean
Computes the interquartile mean (midmean) of a numeric array.
Installation
$ npm install compute-midmean
For use in the browser, use browserify.
Usage
To use the module,
var midmean = require( 'compute-midmean' );
midmean( arr[, sorted] )
Computes the midmean of a numeric array
.
var unsorted = [ 5, 6, 7, 2, 1, 8, 4, 3 ];
var mean = midmean( unsorted );
// returns 4.5
If the input array
is already sorted
in ascending order, set the optional second argument to true
.
var sorted = [ 1, 2, 3, 4, 5, 6, 7, 8 ];
var mean = midmean( sorted, true );
// returns 4.5
Examples
var data = new Array( 100 );
for ( var i = 0; i < data.length; i++ ) {
data[ i ] = Math.round( Math.random()*100 );
}
console.log( midmean( data ) );
To run the example code from the top-level application directory,
$ node ./examples/index.js
Notes
If provided an unsorted input array
, the function is O( N log(N) + m )
, where N
is the input array
length and m
is the number of values located between the first and third quartiles. If the input array
is already sorted in ascending order, the function is O(m)
.
The midmean includes the values located between but not including the first and third quartiles. In the following examples, the values included in the midmean are in bold.
- [1,2,3,4,5,6,7,8] -> midmean: 4.5
- [1,2,3,4,5,6,7] -> midmean: 4
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
Copyright
Copyright © 2014. Rebekah Smith.