What is percentile コマンド?
データ分析において、パーセンタイル値はしばしば重要な指標となります。
percentile コマンドは、ファイルや標準入力から数値を読み込み、パーセンタイル値を表示する CLI プログラムです。
percentile コマンドの特長
percentile コマンドには、次のような特徴があります。
- ファイルおよび標準入力から数値を読み込み、読み込んだ数値のパーセンタイル値を表示する
- 読み込んだ数値はデフォルトでソートされるため、事前にソートする必要がない
- 表示するパーセンタイル値は、デフォルトでは p25, p50, p75, p90, p95, p99 だが、オプションで指定することができる
- パーセンタイル値はデフォルトでは切り捨てられるが、切り捨てないようにオプションで指定できる
使い方の実行例
percentile コマンドを実行する例を示します。
ファイルから数値を読み込む
percentile <ファイル>
と実行すると、ファイルから読み込んだ数値のパーセンタイルを表示します。
$ percentile <(seq 1 100) p25: 25 p50: 50 p75: 75 p90: 90 p95: 95 p99: 99
標準入力から数値を読み込む
<他のコマンド> | percentile -
と実行すると、標準入力から読み込んだ数値のパーセンタイルを表示します。
$ seq 1 100 | percentile - p25: 25 p50: 50 p75: 75 p90: 90 p95: 95 p99: 99
表示するパーセンタイル値を指定する
表示するパーセンタイル値は、デフォルトでは p25, p50, p75, p90, p95, p99 ですが、-p
オプションで表示するパーセンタイル値を指定できます。
表示するパーセンタイル値が複数ある場合は、-p 25,50
のようにカンマで区切ります。
$ seq 1 100 | percentile -p 25,50 - p25: 25 p50: 50
パーセンタイル値を切り捨てない
表示するパーセンタイル値は、デフォルトでは切り捨てられて整数になりますが、-r
オプションを指定すると小数点第1位までが表示されます。
$ seq 1 100 | percentile -r - p25: 25.5 p50: 50.5 p75: 75.5 p90: 90.5 p95: 95.5 p99: 99.5
インストール方法
percentile をインストールするには、以下の方法があります。
開発者向け
Go 言語の開発環境が整っている場合は、次のコマンドを実行することにより、percentile コマンドをインストールできます。
$ go install github.com/ebc-2in2crc/percentile/cmd/percentile@latest
手動でのインストール
https://github.com/ebc-2in2crc/percentile/releases にアクセスし、お使いの OS 向けの実行ファイルをダウンロードできます。
Homebrew
Homebrew を使う場合は、次のコマンドを実行することにより、percentile コマンドをインストールできます。
$ brew install ebc-2in2crc/tap/percentile
動機
最近、ちょっとしたデータ分析をする際に、パーセンタイル値を求めることが何回かありました。
CLI でパーセンタイル値を求められるコマンドを探したところ、そういったツールはいくつかあったのですが、次のようなところが自分の使い方にはマッチしませんでした。
- 数値の読み込み元として、ファイルと標準入力の両方をサポートしていない
- 表示するパーセンタイル値が固定されてしまっている
そこで、パーセンタイル値を計算 & 表示するコマンドをサッと実装してしまいました *1
まとめ
percentile の開発やバグレポート、質問などがあったら、GitHub のリポジトリに issue や PR を作ったり、Twitter でお気軽にお声がけいただけたら嬉しいです。
ということで、 percentile コマンドの紹介でした。
*1:また、再発明をしてしまいました