给出以下数组:
[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中寻找解决方案。
答案 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