如何在Java中计算百分位数?
我试图从LinkedHashMap中填充的数据集计算百分位如何在Java中计算百分位数?,java,percentile,Java,Percentile,我试图从LinkedHashMap中填充的数据集计算百分位 Key Value 1 1 2 1 3 1 4 6 5 10 5 19 7 19 8 20 如何获取每个值的百分位数? 我使用的代码并没有给出正确的百分位数 float i = test.s
Key Value
1 1
2 1
3 1
4 6
5 10
5 19
7 19
8 20
如何获取每个值的百分位数?
我使用的代码并没有给出正确的百分位数
float i = test.size();
float k = test.size();
if (test.size() > 1) {
float n = (i-1)*100/i;
for (int j = 0; j <=i ; ) {
if (i == 1) {
System.exit(0);
}
float a = (i-1)*100/k;
System.out.println("Percentile of lastvalue "+a);
i--;
System.out.println("Size of i "+i);
}
} else {
System.out.println("Bye");
}
Percentiile将从列表中的最高值开始计数首先,test.size()返回LinkedHashMap中的条目数,这可能不是您想要的。如果我理解正确,您需要计算所有值之和的每个值的相对大小(百分位)。这就是我的代码片段所完成的
另外,您已经编写了两次密钥5,我相信您不是有意这样做的(LinkedHashMaps或哈希表通常不支持重复密钥)。因此,我将最后一个5改为6
import java.util.LinkedHashMap;
导入java.util.List;
导入java.util.ArrayList;
类钙质
{
公共静态void calcPercentiles(LinkedHashMap hashMap){
int size=hashMap.size();
List value_List=newarraylist(hashMap.values());
整数和=0;
对于(int i=0;i
输出:
1.2987013
1.2987013
1.2987013
7.7922077
12.987013
24.675325
24.675325
25.974026
您也可以使用番石榴的分位数来计算分位数\百分位数数据-
是否有用于计算百分位数的
值的外部范围?或者,1-20
是范围吗?我在这里显示的值即将到来,可能需要或更多时间来获取每个值的百分位数。现在,我想计算百分位数显示预期输出,因为它与输入观测值完全对应。
1.2987013
1.2987013
1.2987013
7.7922077
12.987013
24.675325
24.675325
25.974026