Tukubaiオンラインコマンドマニュアル - sisu(1)
sisu(1)
【名前】
sisu : 指数(構成比)を計算
【書式】
Usage : sisu [-<p>] [key=<key>] val=<val> <file> Version : Wed Feb 19 16:34:37 JST 2014
【説明】
引数のファイルまたは標準入力のテキストデータのkey=で指定したフィールドについて全レコード(行)の合計に占める各フィールドの値の構成比を算出し、その次のフィールドに挿入して出力する。
【例1】
$ cat data # 店 日付 売数 客数 a店 1日目 103 62 b店 1日目 210 113 c店 1日目 81 52 d店 1日目 75 48 e店 1日目 211 140 $
売数(第3フィールド)の店別構成比を求めて売数の次のフィールドに挿入する。
$ sisu val=3 data | keta a店 1日目 103 75.7 62 b店 1日目 210 154.4 113 c店 1日目 81 59.6 52 d店 1日目 75 55.1 48 e店 1日目 211 155.1 140 $ # 第4フィールドが構成比
【例2】
key=で指定したフィールドをキーフィールドとし、キーフィールドの値が同じレコードの中で構成比を計算して出力する。なおキーフィールドはあらかじめ整列済みであることが条件となる。
$ cat data # 店 日付 売数 客数 a店 1日目 103 62 a店 2日目 157 94 a店 3日目 62 30 b店 1日目 210 113 b店 2日目 237 121 b店 3日目 150 82 c店 1日目 81 52 c店 2日目 76 49 c店 3日目 38 21 d店 1日目 75 48 d店 2日目 72 42 d店 3日目 34 19 e店 1日目 211 140 e店 2日目 149 91 e店 3日目 120 73 $
各日(第2フィールド)毎に店別の売数(第3フィールド)の構成比を求める。
$ msort key=2/1 data | sisu key=2 val=3 | keta a店 1日目 103 75.7 62 ---- b店 1日目 210 154.4 113 ↑ c店 1日目 81 59.6 52 1日目の中での構成比 d店 1日目 75 55.1 48 ↓ e店 1日目 211 155.1 140 ---- a店 2日目 157 113.6 94 ---- b店 2日目 237 171.5 121 ↑ c店 2日目 76 55.0 49 2日目の中での構成比 d店 2日目 72 52.1 42 ↓ e店 2日目 149 107.8 91 ---- a店 3日目 62 76.7 30 ---- b店 3日目 150 185.6 82 ↑ c店 3日目 38 47.0 21 3日目の中での構成比 d店 3日目 34 42.1 19 ↓ e店 3日目 120 148.5 73 ---- $ # 第4フィールドが構成比
【例3】
「-数値」で構成比の小数点以下の精度を指定できる。
$ cat data # 店 日付 売数 客数 a店 1日目 103 62 b店 1日目 210 113 c店 1日目 81 52 d店 1日目 75 48 e店 1日目 211 140 $
売数(第3フィールド)の店別構成比を小数点3桁まで求める。
$ sisu -3 val=3 data | keta a店 1日目 103 75.735 62 b店 1日目 210 154.412 113 c店 1日目 81 59.559 52 d店 1日目 75 55.147 48 e店 1日目 211 155.147 140 $