範囲により参照ファイルの項目を結合(join)する。 r=パラメータで指定した項目値が、参照ファイル上にある範囲条件(項目値以上、次行の項目値未満)にマッチすればf=パラメータで指定した項目値を結合する。 より複雑な範囲条件で結合したければmnrjoinを使う。 範囲条件数が少なければmchgnumの利用を考えるとよい。
mrjoin r= [k=] [K=] [R=] [f=] [-n] [-lo] [m=] [i=] [o=] [-assert_diffSize] [-assert_nullkey] [-assert_nullin] [-assert_nullout] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]
f= |
結合する参照ファイル上の項目名リスト(複数項目指定可)。 |
省略するとK=で指定された項目以外の項目を全て結合する。 |
|
m= |
参照ファイル名を指定する。 |
このパラメータが省略された時には標準入力が用いられる。(i=指定ありの場合) |
|
r= |
範囲比較される項目名[%n] |
入力ファイル上の項目名を指定する。 |
|
ここでここで指定した項目(複数項目指定可)で並べ替えられた後、結合が行われる。 |
|
%nが指定されると、数値範囲として解釈し、指定がなければ文字列範囲として解釈する。 |
|
ここで指定する項目にNULL値があってはならない。NULL値があった場合の動作は不定である。 |
|
R= |
参照ファイル上の範囲項目名。 |
省略時はr=パラメータと同名として扱われる。 |
|
k= |
入力データ上の突き合わせる項目名リスト(複数項目指定可) |
ここで指定した入力データの項目とK=パラメータで指定された 参照データの項目が同じ行の項目結合が行われる。 |
|
K= |
参照データ上の突き合わせる項目名リスト(複数項目指定可) |
ここで指定した参照データの項目とk=パラメータで指定された 入力データの項目が同じ行の項目結合が行われる。 |
|
参照データ上にk=パラメータで指定した入力データ上の 項目と同名の項目が存在する場合は指定する必要はない。 |
|
-n |
参照データにない入力データをNULL値として出力するフラグ。 |
-lo |
left open interval |
R= パラメータで指定した範囲を左半開区間(より大きい~以下)と解釈する。 |
priceを範囲で 分類項目low、middle、highを結合する。
$ more dat1.csv price 8 15 35 50 90 200 $ more ref1.csv range,category 10,low 35,middle 80,high 100, $ mrjoin r=price%n m=ref1.csv R=range f=category i=dat1.csv o=rsl1.csv #END# kgrjoin R=range f=category i=dat1.csv m=ref1.csv o=rsl1.csv r=price%n $ more rsl1.csv price%0n,category 15,low 35,middle 50,middle 90,high
$ mrjoin -lo r=price%n m=ref1.csv R=range f=category i=dat1.csv o=rsl2.csv #END# kgrjoin -lo R=range f=category i=dat1.csv m=ref1.csv o=rsl2.csv r=price%n $ more rsl2.csv price%0n,category 15,low 35,low 50,middle 90,high
$ mrjoin -n r=price%n m=ref1.csv R=range f=category i=dat1.csv o=rsl3.csv #END# kgrjoin -n R=range f=category i=dat1.csv m=ref1.csv o=rsl3.csv r=price%n $ more rsl3.csv price%0n,category 8, 15,low 35,middle 50,middle 90,high 200,
$ more dat2.csv item,price A,10 A,20 B,10 B,20 $ more ref2.csv item,price,category A,10,low A,15,high A,100, B,10,low B,35,high B,100, $ mrjoin k=item r=price%n m=ref2.csv f=category i=dat2.csv o=rsl4.csv #END# kgrjoin f=category i=dat2.csv k=item m=ref2.csv o=rsl4.csv r=price%n $ more rsl4.csv item%0,price%1n,category A,10,low A,20,high B,10,low B,20,low
mchgnum : 数値範囲を指定して値を置換/追加する。
mjoin : 数値範囲ではなく文字列一致による結合の場合はこのコマンドを使う。
mnrcommon : 結合ではなく選択する場合はこのコマンドを使う。