Previous: mchkcsv CSVデータのチェック Up: コマンドリファレンス Next: mcommon 参照ファイルによる行選択 MCMD2
MCMD2 : コマンドリファレンス : mcombi 組合せ計算

3.11 mcombi 組合せ計算

f=パラメータで指定した項目について、 n=パラメータで指定した数の組み合せを求め、 a=パラメータで指定した項目名で出力する。 -pを指定することで順列として出力することも可能である。

書式

mcombi a= f= n= [s=] [k=] [-p] [-dup] [i=] [o=] [-assert_diffSize] [-assert_nullin] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

a=

新たに追加される項目の名前を指定する。

f=

組合せを求める項目名リスト(複数項目指定可)を指定する。

 

ここで指定した項目の値の全組合せを出力する。

n=

組合せの数を指定する。

 

組み合わせ数を大きくすると、出力レコードが爆発的に大きくなることに注意する。

s=

ここで指定した項目(複数項目指定可)で並べ替えられた後、f=で指定した項目の組み合わせを求める。

k=

キー項目名リスト(複数項目指定可)

 

組合せを求める単位となる項目名リスト。

-p

組合せでなく順列を求める。

-dup

同一の値の組み合せも出力する

利用例

例1: 基本例

customer項目を単位に、item項目の2アイテムの組み合わせを求め、 item1,item2という項目名で出力する。 k=,f=で指定していない項目(ここではitem項目)は、キーの最終行の値が出力される。

$ more dat1.csv
customer,item
A,a1
A,a2
A,a3
B,a4
B,a5
$ mcombi k=customer f=item n=2 a=item1,item2 i=dat1.csv o=rsl1.csv
#END# kgcombi a=item1,item2 f=item i=dat1.csv k=customer n=2 o=rsl1.csv
$ more rsl1.csv
customer%0,item,item1,item2
A,a3,a1,a2
A,a3,a1,a3
A,a3,a2,a3
B,a5,a4,a5

例2: 基本例2

-dupオプションを指定すると同一のアイテムの組み合せも出力される。

$ mcombi k=customer f=item n=2 a=item1,item2 i=dat1.csv o=rsl2.csv -dup
#END# kgcombi -dup a=item1,item2 f=item i=dat1.csv k=customer n=2 o=rsl2.csv
$ more rsl2.csv
customer%0,item,item1,item2
A,a3,a1,a1
A,a3,a1,a2
A,a3,a1,a3
A,a3,a2,a2
A,a3,a2,a3
A,a3,a3,a3
B,a5,a4,a4
B,a5,a4,a5
B,a5,a5,a5

例3: 順列を求める例

customer項目を単位に、item項目の2アイテムの順列を求め、 item1,item2という項目名で出力する。

$ mcombi k=customer f=item n=2 a=item1,item2 -p i=dat1.csv o=rsl3.csv
#END# kgcombi -p a=item1,item2 f=item i=dat1.csv k=customer n=2 o=rsl3.csv
$ more rsl3.csv
customer%0,item,item1,item2
A,a3,a1,a2
A,a3,a2,a1
A,a3,a1,a3
A,a3,a3,a1
A,a3,a2,a3
A,a3,a3,a2
B,a5,a4,a5
B,a5,a5,a4

例4: 順列を求める例

item項目を降順に並べ替えた後、 item項目の2アイテムの順列を求める。

$ mcombi k=customer f=item n=2 s=item%r a=item1,item2 -p i=dat1.csv o=rsl4.csv
#END# kgcombi -p a=item1,item2 f=item i=dat1.csv k=customer n=2 o=rsl4.csv s=item%r
$ more rsl4.csv
customer%0,item%1r,item1,item2
A,a1,a3,a2
A,a1,a2,a3
A,a1,a3,a1
A,a1,a1,a3
A,a1,a2,a1
A,a1,a1,a2
B,a4,a5,a4
B,a4,a4,a5

関連コマンド

Previous: mchkcsv CSVデータのチェック Up: コマンドリファレンス Next: mcommon 参照ファイルによる行選択 MCMD2