Tukubaiオンラインコマンドマニュアル - ratio(1)

ratio(1)

【名前】

ratio : 構成比算出

【書式】

Usage   : ratio key=<key> <file>
Option  : ref=<ref>             ←参照キーの指定
        : -<s>                  ←小数点以下の精度
        : +<n>h                 ←先頭<n>行をヘッダーとみなす
Version : Tue Oct 20 15:17:47 JST 2020
Edition : 1

【説明】

引数のファイルまたは標準入力のテキストデータに対し、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フィールド)の店別構成比を求めて売数の次のフィールドに挿入するには、次のようにコマンドを実行する。

$ ratio key=3 data |  keta
a店 1日目 103 15.1  62          ←第4フィールドが構成比になっている
b店 1日目 210 30.9 113
c店 1日目  81 11.9  52
d店 1日目  75 11.0  48
e店 1日目 211 31.0 140
$

【例2】refオプション

ref=で指定したフィールドをキーフィールドとし、キーフィールドの値が同じ行の中で構成比を計算して出力する。なお、キーフィールドはあらかじめ整列されていることが条件となる。

$ 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フィールド)の構成比を求める。

$ sort -k2,2 -k1,1 data | ratio ref=2 key=3 | keta
a店 1日目 103 15.1  62          ←第4フィールドが1日目における構成比
b店 1日目 210 30.9 113
c店 1日目  81 11.9  52
d店 1日目  75 11.0  48
e店 1日目 211 31.0 140
a店 2日目 157 22.7  94          ←第4フィールドが2日目における構成比
b店 2日目 237 34.3 121
c店 2日目  76 11.0  49
d店 2日目  72 10.4  42
e店 2日目 149 21.6  91
a店 3日目  62 15.3  30          ←第4フィールドが3日目における構成比
b店 3日目 150 37.1  82
c店 3日目  38  9.4  21
d店 3日目  34  8.4  19
e店 3日目 120 29.7  73
$

【例3】+hオプション

+<n>hオプションを付けると、先頭の<n>行を飛ばして構成比を計算する。先頭行に既に項目名などのヘッダーが付与されているデータを計算する場合などに使用する。新たに増える構成比のフィールドのヘッダーは@となる。

$ cat data
店   日付 売数 客数             ←項目名のヘッダー
a店 1日目  103   62
b店 1日目  210  113
c店 1日目   81   52
d店 1日目   75   48
e店 1日目  211  140
$

先頭行を飛ばして売数(第3フィールド)の店別構成比を求めて売数の次のフィールドに挿入する。

$ ratio +h key=3 data |  keta
店   日付 売数    @ 客数                ←先頭行はそのまま(計算しない)
a店 1日目  103 15.1   62                ←第4フィールドが構成比になっている
b店 1日目  210 30.9  113
c店 1日目   81 11.9   52
d店 1日目   75 11.0   48
e店 1日目  211 31.0  140
$

【例4】-<s>オプション

-<数値>で構成比の小数点以下の精度を指定できる。

$ cat data
a店 1日目 103  62               ←店名 日付 売数 客数
b店 1日目 210 113
c店 1日目 81   52
d店 1日目 75   48
e店 1日目 211 140
$

売数(第3フィールド)の店別構成比を小数点3桁まで求める。

$ ratio -3 key=3 data |  keta
a店 1日目 103 15.147  62
b店 1日目 210 30.882 113
c店 1日目  81 11.912  52
d店 1日目  75 11.029  48
e店 1日目 211 31.029 140
$

【関連項目】

kasan(1)plus(1)sm2(1)sm4(1)sm5(1)ysum(1)

Last modified: 2022-08-13 08:42:36