mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-14 09:04:56 +08:00
Merge pull request #170 from jbargu/jg_sci_485_fix_formulas
Add aliases for STDEV/VAR and ignore strings as numbers
This commit is contained in:
commit
908f85f6c0
2 changed files with 15 additions and 8 deletions
16
vendor/assets/javascripts/formula.js
vendored
16
vendor/assets/javascripts/formula.js
vendored
|
@ -5038,7 +5038,7 @@
|
|||
};
|
||||
|
||||
Formula.MAX = function () {
|
||||
var range = Formula.FLATTEN(arguments);
|
||||
var range = Formula.NUMBERS(Formula.FLATTEN(arguments));
|
||||
var n = range.length;
|
||||
var max = (n > 0) ? range[0] : 0;
|
||||
for (var i = 0; i < n; i++) {
|
||||
|
@ -5053,11 +5053,11 @@
|
|||
};
|
||||
|
||||
Formula.MEDIAN = function () {
|
||||
return jStat.median(Formula.FLATTEN(arguments));
|
||||
return jStat.median(Formula.NUMBERS(Formula.FLATTEN(arguments)));
|
||||
};
|
||||
|
||||
Formula.MIN = function () {
|
||||
var range = Formula.FLATTEN(arguments);
|
||||
var range = Formula.NUMBERS(Formula.FLATTEN(arguments));
|
||||
var n = range.length;
|
||||
var min = (n > 0) ? range[0] : 0;
|
||||
for (var i = 0; i < n; i++) {
|
||||
|
@ -5337,8 +5337,8 @@
|
|||
};
|
||||
|
||||
Formula.SLOPE = function (data_y, data_x) {
|
||||
data_y = Formula.FLATTEN(data_y)
|
||||
data_x = Formula.FLATTEN(data_x)
|
||||
data_y = Formula.NUMBERS(Formula.FLATTEN(data_y));
|
||||
data_x = Formula.NUMBERS(Formula.FLATTEN(data_x));
|
||||
var xmean = jStat.mean(data_x);
|
||||
var ymean = jStat.mean(data_y);
|
||||
var n = data_x.length;
|
||||
|
@ -5373,7 +5373,7 @@
|
|||
};
|
||||
|
||||
Formula.STDEVP = function () {
|
||||
var range = Formula.FLATTEN(arguments);
|
||||
var range = Formula.NUMBERS(Formula.FLATTEN(arguments));
|
||||
var n = range.length;
|
||||
var sigma = 0;
|
||||
var count = 0;
|
||||
|
@ -5399,7 +5399,7 @@
|
|||
};
|
||||
|
||||
Formula.STDEVS = function () {
|
||||
var range = Formula.FLATTEN(arguments);
|
||||
var range = Formula.NUMBERS(Formula.FLATTEN(arguments));
|
||||
var n = range.length;
|
||||
var sigma = 0;
|
||||
var count = 0;
|
||||
|
@ -5530,7 +5530,7 @@
|
|||
};
|
||||
|
||||
Formula.VARS = function () {
|
||||
var range = Formula.FLATTEN(arguments);
|
||||
var range = Formula.NUMBERS(Formula.FLATTEN(arguments));
|
||||
var n = range.length;
|
||||
var sigma = 0;
|
||||
var count = 0;
|
||||
|
|
7
vendor/assets/javascripts/ruleJS.js
vendored
7
vendor/assets/javascripts/ruleJS.js
vendored
|
@ -1240,6 +1240,13 @@ var ruleJS = (function (root) {
|
|||
return Big(m).times(Big(10).pow(e)).toFixed();
|
||||
})
|
||||
|
||||
// Preprocess the following aliases for formulas
|
||||
// or parser won't accept them
|
||||
formula = formula.replace('STDEV.P', 'STDEVP');
|
||||
formula = formula.replace('STDEV.S', 'STDEVS');
|
||||
formula = formula.replace('VAR.P', 'VARP');
|
||||
formula = formula.replace('VAR.S', 'VARS');
|
||||
|
||||
parser.setObj(element);
|
||||
result = parser.parse(formula);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue