特定のリスト内のすべての値のパーセンタイル ランクを計算する方法を探していましたが、これまでのところ成功していません。
org.apache.commons.math3
値のリストから pth パーセンタイルを取得する方法を提供しますが、私が望むのはその反対です。リスト内のすべての値のランキングが必要です。それを達成するためのApache commons mathのライブラリまたは方法を知っている人はいますか?
例: 値のリストが与えられた場合{1,2,3,4,5}
、最大パーセンタイルが 99 または 100、最小パーセンタイルが 0 または 1 のすべての値のパーセンタイル ランクが必要です。
更新されたコード:
public class TestPercentile {
public static void main(String args[]) {
double x[] = { 10, 11, 12, 12, 12, 12, 15, 18, 19, 20 };
calculatePercentiles(x);
}
public static void calculatePercentiles(double[] arr) {
for (int i = 0; i < arr.length; i++) {
int count = 0;
int start = i;
if (i > 0) {
while (i > 0 && arr[i] == arr[i - 1]) {
count++;
i++;
}
}
double perc = ((start - 0) + (0.5 * count));
perc = perc / (arr.length - 1);
for (int k = 0; k < count + 1; k++)
System.out.println("Percentile for value " + (start + k + 1)
+ " = " + perc * 100);
}
}}
Sample Output:
Percentile for value 1 = 0.0
Percentile for value 2 = 11.11111111111111
Percentile for value 3 = 22.22222222222222
Percentile for value 4 = 50.0
Percentile for value 5 = 50.0
Percentile for value 6 = 50.0
Percentile for value 7 = 50.0
Percentile for value 8 = 77.77777777777779
Percentile for value 9 = 88.88888888888889
Percentile for value 10 = 100.0
これが正しいかどうか、またこれをよりきれいに行うためのライブラリがあるかどうかを誰かに教えてもらえますか?
ありがとうございました!