$0 -/ 分位分割数
分位点を求める。通常の(線形)補間値のみならず、上側の値と下側の値も出力する。
2次情報として何個の値を入力から読み取ったかも、標準エラー出力に出力。
オプション :
-= : 最初の行を読み飛ばす。
-q N : 分位分割の数Nを指定する。
-p 1..5など : 何番目の分位点を出力するかを指定する。小数も指定可能。, や .. が使える。
-h : 分位点の計算において、考えられる大きい値についても、出力する。
-I : 分位点を観測値に存在する値ではなくて、線形補間した値を用いる。
-l : 分位点の計算において、考えられる小さい値についても、出力する。
-0 : 通常のよく使われる分位点の値を出さない。(-h, -l, -i を使う時に便利。)
-s : 入力を数値としてではなく、文字列として処理する。日時を扱う場合などに使う。
-L ; 層別に分位点を出力する。1列目を値と見なし、タブ区切り2列目以降を層のラベルと見なす。
-w ; 分位値を算出する際に、各値を平等に扱うのではなくて、その値自信で重みを付ける。(正の値を仮定する。)
-3 : -w で数値が2列とする。左側が昇順ソートされるが、重みは自己重みではなくて、右側の値となる。
-i str ; 入力の区切り文字をstrとする。
-@ N : 一定秒数ごとに、標準エラー出力にレポートを出す。未指定なら、10秒。
-2 0 : 2次情報を出力しない。
--help : ヘルプを出力。(この表示を出力する。)
--help opt : $0 の引数の内のオフションスイッチ( - で始まる引数)についての解説を表示。
--version : バージョン情報の表示
開発メモ :
* 出力する数の桁数の指定が必要そう。sprintf , printf を使わないようにしたい。
* 出力出来る数について、 printf書式を指定できるようにしたい。
* -@ による一定数行毎のレポートでは無くて、ALRMを使って一定時間おき(10秒ごと)のレポートとしたい。
* 数値であるかどうかの判定を入れたい。
* 保守のために、関数内の関数を活用しようか。
* -w の場合に、 -h, -I, -l も考慮したい。今は単純なもののみである。
** -w 無しの -3 の挙動の設計が不自然なので、再検討 # <--- -- "-w" は自己重み付け , -3 は、重み付け自体を表している