Previous: mcross クロス集計 Up: コマンドリファレンス Next: mcsv2arff csvからarff形式への変換 MCMD2
MCMD2 : コマンドリファレンス : m2cross 1対Nのクロス集計

3.15 m2cross 1対Nのクロス集計

1対Nのクロス集計を行う。 s=を指定した場合には項目の値が項目名となるように横に展開され、 f=で指定した項目がセルとして出力される。 a=を指定した場合(2項目指定)には 指定した値が項目名となり、 1項目にf=で指定した項目名が、 2項目にf=で指定した項目値がそれぞれ縦展開される k=が指定されていた場合には、 指定した値が行idとなり、id単位で展開される。

書式

m2cross f= s=|a= [k=] [v=] [i=] [o=] [-assert_diffSize] [-assert_nullkey] [-assert_nullin] [-assert_nullout] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

f=

ここで指定された項目の値がセルの値として出力される。

 

a=を使用するときのみ複数項目指定可。

s=

列項目名に展開する項目を指定する。

 

ここで指定された項目の値が項目名として出力される。

a=

2項目指定する。

 

1項目目にf=で指定した項目名がデータとして展開される項目名を指定する。

 

2項目目にf=で指定した項目値の項目名を指定する

k=

キー項目名リスト

 

ここで指定した項目を単位に展開をおこなう。

v=

NULL値置換文字列

 

NULL値があった場合、v=パラメータで指定する置換文字列により、項目の値を置換する。

利用例

例1: 基本例

item項目を単位にdate項目を横に展開し、 quantity項目を出力する。

$ more dat1.csv
item,date,quantity
A,20081201,1
A,20081202,2
A,20081203,3
B,20081201,4
B,20081203,5
$ m2cross k=item f=quantity s=date i=dat1.csv o=rsl1.csv
#END# kg2cross f=quantity i=dat1.csv k=item o=rsl1.csv s=date
$ more rsl1.csv
item%0,20081201,20081202,20081203
A,1,2,3
B,4,,5

例2: 元の入力データに戻す例

例1の出力結果を元に戻すには、同じくm2crossを以下のよう用いればよい。

$ more rsl1.csv
item%0,20081201,20081202,20081203
A,1,2,3
B,4,,5
$ m2cross f=2008* a=date,quantity i=rsl1.csv o=rsl2.csv
#END# kg2cross a=date,quantity f=2008* i=rsl1.csv o=rsl2.csv
$ more rsl2.csv
item%0,date,quantity
A,20081201,1
A,20081202,2
A,20081203,3
B,20081201,4
B,20081202,
B,20081203,5

例3: 並びを逆順する例

横に展開する項目名の並びを逆順にする。

$ m2cross k=item f=quantity s=date%r i=dat1.csv o=rsl4.csv
#END# kg2cross f=quantity i=dat1.csv k=item o=rsl4.csv s=date%r
$ more rsl4.csv
item%0,20081203,20081202,20081201
A,3,2,1
B,5,,4

関連コマンド

mcross : イメージは同じだが、mcrossはN対Nクロス集計として出力する。

Previous: mcross クロス集計 Up: コマンドリファレンス Next: mcsv2arff csvからarff形式への変換 MCMD2