UNPKG

779 BJavaScriptView Raw
1import { Formula } from '@analys/formula';
2import { samplesFind } from '@analys/samples-find';
3import { argnames } from '@spare/deco-func';
4import { mutazip } from '@vect/vector-zipper';
5
6const samplesFormula = function (formulae, {
7 filter,
8 append = true
9} = {}) {
10 let samples = this;
11
12 if (filter) {
13 samples = samplesFind.call(samples, filter);
14 }
15
16 for (let indicator in formulae) if (formulae.hasOwnProperty(indicator)) {
17 const func = formulae[indicator];
18 formulae[indicator] = [argnames(func), func];
19 }
20
21 const formulaEngine = new Formula(formulae);
22 const results = formulaEngine.calculate(samples).toSamples();
23 return append ? mutazip(samples, results, (sample, result) => Object.assign(sample, result)) : results;
24};
25
26export { samplesFormula };