メインコンテンツへスキップ
メインコンテンツへスキップ

quantilesExactExclusive

quantilesExactExclusive

数値データ列の分位数を厳密に計算します。

厳密な値を得るために、渡されたすべての値をいったん配列にまとめ、その配列を部分的にソートします。そのため、この関数は O(n) のメモリを消費し、ここで n は渡された値の個数です。ただし、値の数が少ない場合には、この関数は非常に効率的です。

この関数は、Excel の PERCENTILE.EXC 関数(型 R6)と等価です。

quantileExactExclusive よりも、複数の分位レベルを同時に扱う場合に効率的に動作します。

構文

quantilesExactExclusive(level1, level2, ...)(expr)

引数

パラメータ

  • level — 分位数のレベル。取り得る値: (0, 1)(両端は含まない)。Float

戻り値

  • 指定されたレベルの分位数のArray

配列要素の型:

  • 入力が数値データ型の場合は Float64
  • 入力値が Date 型の場合は Date
  • 入力値が DateTime 型の場合は DateTime

クエリ:

CREATE TABLE num AS numbers(1000);

SELECT quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x) FROM (SELECT number AS x FROM num);

結果:

┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x)─┐
│ [249.25,499.5,749.75,899.9,949.9499999999999,989.99,998.999]        │
└─────────────────────────────────────────────────────────────────────┘