CLX C++ Libraries - quantile
Author: clown

CLX C++ Libraries
Home >> quantile

# Declarations

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

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

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

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

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

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

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

# Overview

第 k 位 q 分位点を求めます．第 k 位 q 分位点とは，与えられたデータ昇順に 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