Javascript中的标准偏差,用于MS Excel API

Standard Deviation in Javascript, for MS Excel API

本文关键字:用于 MS Excel API 标准 Javascript      更新时间:2023-09-26

我是Javascript的新手,正在为一些简单的统计函数开发Excel API,但是我被困在如何为它编写标准偏差方法上,有人可以帮助阐明一些问题吗?这是我到目前为止所拥有的:

function writedata(data) {
    Office.context.document.setSelectedDataAsync(data, function (asyncResult) {
        if (asyncResult.status === "failed") {
            writeToPage('Error: ' + asyncResult.error.message);
        }
    });
}     

function sumdata(begin, end) {
    var command ="=sum(" + begin + ":" + end + ")";
    Office.context.document.setSelectedDataAsync(command, function (asyncResult) {
        if (asyncResult.status === "failed") {
            writeToPage('Error: ' + asyncResult.error.message);
        }
    });
}
function meanvalue(begin, end) {
    var tot = "=total(" + begin + ":" + end + ")";
    var cnt = tot.valueOf.length;
    var average = tot / cnt;
    Office.context.document.setSelectedDataAsync(average, function (asyncResult) {
        if (asyncResult.status === "failed") {
            writeToPage('Error: ' + asyncResult.error.message);
        }
    });
}

要返回返回数组的标准偏差,您需要先计算平均值,然后对每个 ITM 与平均值的差值应用标准差公式。

Math.mean= function(array){
    return array.reduce(function(a, b){ return a+b; })/array.length;
}
Math.stDeviation=function(array){
    var mean= Math.mean(array),
    dev= array.map(function(itm){return (itm-mean)*(itm-mean); });
    return Math.sqrt(dev.reduce(function(a, b){ return a+b; })/array.length);
}
// Example:
var A2= [6.2, 5, 4.5, 6, 6, 6.9, 6.4, 7.5];
Math.stDeviation(A2); /*value=> 0.899913190257816;*/
Math.mean(A2)/* value=>  6.0625 */