CLX C++ Libraries
Home >> quantile

Declarations

template <class InIter>
double quantile(InIter first, InIter last, unsigned int k, unsigned int q);

template <class InIter>
double median(InIter first, InIter last);

template <class InIter>
double tertile(InIter first, InIter last, unsigned int k);

template <class InIter>
double quartile(InIter first, InIter last, unsigned int k);

template <class InIter>
double quintile(InIter first, InIter last, unsigned int k);

template <class InIter>
double decile(InIter first, InIter last, unsigned int k);

template <class InIter>
double percentile(InIter first, InIter last, unsigned int k);

Overview

kq 分位点を求めます.第 kq 分位点とは,与えられたデータ昇順に q 分割したときの k 番目に当たる値を表します.quantile.h には,この他に中央値 (median),三分位点 (tertile), 四分位点 (quartile),五分位点 (quintile),十分位点 (decile),百分位点 (percentile) を定義しています.

Example

example_percentile.cpp

#include <iostream>
#include <iterator>
#include "clx/quantile.h"

int main(int argc, char* argv[]) {
    std::istream_iterator<int> input(std::cin);
    std::istream_iterator<int> last;
    
    double val = clx::percentile(input, last, 95);
    std::cout << 95 << "% percentile: " << val << std::endl;
    
  return 0;
}
test_stats.dat
100 60 70 80 80
 89 85 82 90 75
 75 60 65 60 80
 80 90 80 80 80
 90 85 83 50 75

Result
95% percentile: 90