hash法を使ってk=パラメータで指定した項目を単位にして、f=パラメータで指定した項目値の平均を計算する。 mavgとの違いは、キー項目の並べ変えが必要ないため、その分処理速度が速い。 ただし、キーのサイズ(キー項目のとる値の種類数)が多い場合は処理速度が遅くなる。
mhashavg f= [hs=] [k=] [-n] [i=] [o=] [-assert_diffSize] [-assert_nullkey] [-assert_nullin] [-assert_nullout] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [precision=] [--help] [--helpl] [--version]
f= |
ここで指定された項目(複数項目指定可)の平均が計算される。 |
:(コロン)で新項目名を指定可能。例)f=数量:数量平均 |
|
k= |
ここで指定された項目をキーとして集計する(複数項目指定可)。 |
hs= |
ハッシュサイズ【デフォルト値:199999】 |
ハッシュサイズを指定する。【デフォルト値:199999】 |
|
詳細に関してはmhashsum参照 |
|
-n |
NULL値が1つでも含まれていると結果もNULL値とする。 |
「顧客」項目を単位にして、「数量」と「金額」項目の平均を計算する。
$ more dat1.csv 顧客,数量,金額 A,1, B,,15 A,2,20 B,3,10 B,1,20 $ mhashavg k=顧客 f=数量,金額 i=dat1.csv o=rsl1.csv #END# kghashavg f=数量,金額 i=dat1.csv k=顧客 o=rsl1.csv $ more rsl1.csv 顧客,数量,金額 A,1.5,20 B,2,15
-nオプションを指定することで、NULL値が含まれている場合は、結果もNULL値として出力する。
$ mhashavg k=顧客 f=数量,金額 -n i=dat1.csv o=rsl2.csv #END# kghashavg -n f=数量,金額 i=dat1.csv k=顧客 o=rsl2.csv $ more rsl2.csv 顧客,数量,金額 A,1.5, B,,15
動作速度に関しては、mhashsumのページにあるベンチマークの項を参照のこと。
mavg : 同じ機能をもつコマンドだが、内部的にキー項目の並べ替えを行う。
mhashsum : 同じくハッシュ法を用いた合計計算。