从一组数字中计算五分位数/十分位数

时间:2015-07-22 19:50:40

标签: javascript jquery arrays

给出以下数组:

[13, 468, 3, 6, 220, 762, 97, 16, 522, 69, 119, 2895, 1255, 49, 19, 261, 9, 140, 55, 20, 6, 22, 6, 17, 115]

我需要计算第20,第40,第60和第80百分位数的值。步骤是将数组从低到高排序,计算值的总数,确定第20个百分位的值等等(例如,如果从低到高依次有10个数字,则为第2个值将是第20百分位数。)

这存储在一个变量中,我知道我可以对这些数字进行排序: ticks6.sort();

并使用以下内容获取数组中的值:

var newticks=ticks6.length;

我不知道如何做下一部分,虽然我找出了百分位,但在jquery或javascript中寻找解决方案。

4 个答案:

答案 0 :(得分:4)

像这样使用:

var arr = [13, 468, 3, 6, 220, 762, 97, 16, 522, 69, 119, 2895, 1255, 49, 19, 261, 9, 140, 55, 20, 6, 22, 6, 17, 115];
arr.sort();
var len =  arr.length;
var per20 =  Math.floor(len*.2) - 1;

console.log(arr[per20]);

//类似

var per40 =  Math.floor(len*.4) - 1;
console.log(arr[per40]);

答案 1 :(得分:0)

这样的事情:

tricks6.sort();
var length = tricks6.length;

var twentieth = sorted[math.floor((length-1)*.2)] //do for all

答案 2 :(得分:0)

您可以轻松地对阵列进行排序:



console.log([13, 468, 3, 6, 220, 762, 97, 16, 522, 69, 119, 2895, 1255, 49, 19, 261, 9, 140, 55, 20, 6, 22, 6, 17, 115].sort(function(a,b){return a-b}))




获取数组的长度:myArray.length。 并且第20个percile parseInt(myArray.length * 0.2) => 2

答案 3 :(得分:0)

Simple Statistics库有一个quantile函数可用于此:

ss.quantile([13, 468, 3, 6, 220, 762, 97, 16, 522, 69, 119, 2895, 1255, 49, 19, 261, 9, 140, 55, 20, 6, 22, 6, 17, 115], 0.2)
=> 13