有的时候为了考虑执行效率等,我们把数据处理会放在前端js中,而不选择在SQL中执行。首先什么是标准差?干嘛的?
那如何在JS中求标准差呢?
var baseData=[0,1,2,3,4];
var avg = function (arr) { //计算平均值 函数
var len = arr.length;
var sum = 0;
for(var i = 0; i < len ; i++){
sum += arr[i]*1;
}
return sum/len;
}
var sampleAvg1 =avg(baseData).toFixed(2);
var length = baseData.length;
var temp = new Array(length); //定义一个临时空数组,用来存储每个数组元素与平均值的差的平方。
for (var i = 0; i < length; i++) {
var dev = parseFloat(baseData[i]) - sampleAvg1 ; //计算数组元素与平均值的差
temp[i] = Math.pow(dev, 2); //计算差的平方
}
var powSum = 0; //用来存储差的平方总和
for (var j = 0; j < temp.length; j++) {
if (temp[j].toString() != "" || temp[j].toString() != null) {
powSum = parseFloat(powSum) + parseFloat(temp[j].toString()); //计算差的平方总和
}
}
var stddev = Math.sqrt(parseFloat(powSum) / parseFloat(length)).toFixed(2); //用差的平方总和除以数组长度即可得到标准差
alert(stddev);
结果如下: