ベクトル要素をキーにして参照ファイル上のベクトル型データで置換する。 ベクトル型の項目とは、Table 3.42のitems項目のように、 スペースで区切られた複数の文字列を値として持つ項目である。
Table 3.42: 入力データ in.csv |
||||||||||
no items 1 a b c 2 a d 3 b f e f 4 f c d |
item |
taxo |
a |
X |
b |
Y |
c |
Z |
e |
X |
f |
Z |
Table 3.43: 基本例 vf=items m=ref.csv K=item f=taxo |
||||||||||
no items 1 X Y Z 2 X d 3 Y Z X Z 4 Z Z d |
no |
items |
1 |
X Y Z |
2 |
X * |
3 |
Y Z X Z |
4 |
Z Z * |
mvreplaceコマンドは、参照ファイルデータを一旦全てメモリにセットするので、 巨大な参照ファイルを指定した場合はメモリを使い果たす可能性があることに注意する。
mvreplace vf= K= f= [n=] m=| [-A] i= [o=] [delim=] [-assert_diffSize] [-assert_nullin] [-assert_nullout] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]
vf= |
結合キーとなるベクトルの項目名(i=ファイル上)を指定する。 |
複数項目指定可能。ベクトル要素はソーティングされている必要はない。 |
|
結果の項目名を変更したいときは、:(コロン)に続けて新項目名を指定する。 |
|
-A |
vf=で:(コロン)に続けて指定した項目名で、新たな項目が追加される。 |
なお-Aオプションを指定した場合、vf=パラメータで指定するすべての |
|
項目に新項目名を指定しなければならない。 |
|
m= |
参照ファイルを指定する。 |
K= |
参照ファイル(m=)上の結合キーとなるベクトル要素の項目名を指定する。 |
並べ変わっている必要はないが、ベクトル要素は単一化されていなければならない。 |
|
単一化されていない時の動作は不定である。 |
|
f= |
結合するベクトル(要素)項目名を指定する。 |
n= |
vf=とK=のベクトル要素がマッチしなかった場合に結合する文字列を指定する。 |
省略した場合、対象のベクトル(要素)の結合は行われない。 |
$ more dat1.csv items b a c c c e a a $ more ref1.csv item,taxo a,X Y b,X c,Z Z $ mvreplace vf=items K=item m=ref1.csv f=taxo i=dat1.csv o=rsl1.csv #END# kgvreplace K=item f=taxo i=dat1.csv m=ref1.csv o=rsl1.csv vf=items $ more rsl1.csv items X X Y Z Z Z Z Z Z e X Y X Y
$ more dat2.csv items1,items2 b a c,b b c c,a d e a a,a a $ more ref2.csv item,taxo a,X b,X c,Y d,Y $ mvreplace vf=items1,items2 K=item m=ref2.csv f=taxo i=dat2.csv o=rsl2.csv #END# kgvreplace K=item f=taxo i=dat2.csv m=ref2.csv o=rsl2.csv vf=items1,items2 $ more rsl2.csv items1,items2 X X Y,X X Y Y,X Y e X X,X X
mvjoin : 要素の置換ではなく、結合であればmvjoinを使う。