Computes a moving arithmetic mean (sliding window average) over an array.
$ npm install compute-mmeanFor use in the browser, use browserify.
var mmean = require( 'compute-mmean' );Slides a window over an array to compute a moving mean. For numeric arrays,
var data = [ 1, 2, 3, 4, 5 ];
var values = mmean( data, 2 );
// returns [ 1.5, 2.5, 3.5, 4.5 ]The function accepts two options:
- copy:
booleanindicating whether to return a newarraycontaining the computed means. Default:true. - accessor: accessor
functionfor accessing numerical values in objectarrays.
To mutate the input array (e.g. when input values can be discarded or when optimizing memory usage), set the copy option to false.
var data = [ 1, 2, 3, 4, 5 ];
var values = mmean( data, 2, {
'copy': false
});
//returns [ 1.5, 2.5, 3.5, 4.5 ]
console.log( data === values );
//returns trueFor non-numeric arrays, provide an accessor function for accessing numeric array values.
var arr = [
{'x':1},
{'x':2},
{'x':3},
{'x':4}
];
function getValue( d ) {
return d.x;
}
var values = mmean( arr, 2, {
'accessor': getValue
});
// returns [ 1.5, 2.5, 3.5 ]Note: the returned array has length L - W + 1, where L is the length of the input array and W is the window size.
var mmean = require( 'compute-mmean' );
var data = new Array( 50 );
for ( var i = 0; i < data.length; i++ ) {
data[ i ] = Math.random() * 100;
}
var values = mmean( data, 7 );
console.log( values.join( '\n' ) );To run the example code from the top-level application directory,
$ node ./examples/index.jsUnit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make testAll new feature development should have corresponding unit tests to validate correct functionality.
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-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covCopyright © 2014-2015. Rebekah Smith.