Previous: mtra 縦型データをベクトル項目に変換 Up: コマンドリファレンス Next: mtraflg クロス表をトランザクション項目に変換 MCMD2
MCMD2 : コマンドリファレンス : mtrafld クロス表をトランザクション項目に変換

3.67 mtrafld クロス表をトランザクション項目に変換

f=で指定した項目値とその値のペアのアイテムを作成し、 それらのアイテムを連結し新しいベクトル項目(トランザクション項目とも呼ぶ)として出力する。

書式

mtrafld a= [f=] [delim=] [delim2=] [-r] [-valOnly] [i=] [o=] [-assert_diffSize] [-assert_nullin] [-assert_nullout] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [--help] [--helpl] [--version]

パラメータ

a=

トランザクション項目名を指定する。

f=

項目名リスト(複数項目指定可)【-r指定時必須、それ以外は任意】

 

ここで指定された項目名と値とを連結したアイテムを作成し

 

トランザクション項目として出力される。

 

-rオプションの指定がある時は

 

トランザクションデータから抜き出す項目名を指定する。

 

-rオプションが指定されたとき,このパラメータは省略可能である。

 

省略すると、全ての項目名と値ペアを処理対象とする。

 

ただし、f=パラメータを省略すると標準入力(パイプ入力)は利用できない。

delim=

トランザクション項目のアイテムを区切る文字を指定する(省略時はスペース)。

delim2=

項目名と値ペアとを区切る文字を指定する(省略時は=)。

-r

条件反転

 

トランザクション項目をクロス表に変換する。

-valOnly

このオプションが指定されると、アイテムとして「項目名=」は出力しない。

利用例

例1: 基本例

priceとquantity項目を1つの文字列として連結し、 transactionという項目名で出力する。

$ more dat1.csv
customer,price,quantity
A,198,1
B,325,2
C,200,3
D,450,2
E,100,1
$ mtrafld a=transaction f=price,quantity i=dat1.csv o=rsl1.csv
#END# kgtrafld a=transaction f=price,quantity i=dat1.csv o=rsl1.csv
$ more rsl1.csv
customer,transaction
A,price=198 quantity=1
B,price=325 quantity=2
C,price=200 quantity=3
D,price=450 quantity=2
E,price=100 quantity=1

例2: 基本例2

出力された結果を-rをつけて再実行し元に戻す。

$ mtrafld -r a=transaction f=price,quantity i=rsl1.csv o=rsl2.csv
#END# kgtrafld -r a=transaction f=price,quantity i=rsl1.csv o=rsl2.csv
$ more rsl2.csv
customer,price,quantity
A,198,1
B,325,2
C,200,3
D,450,2
E,100,1

例3: 区切り文字の指定

priceと数量quantity項目を_(アンダーバー)で区切り1つの文字列として連結し、 項目名とデータは:(コロン)で区切りtransactionという項目名で出力する。

$ mtrafld a=transaction f=price,quantity delim=_ delim2=':' i=dat1.csv o=rsl3.csv
#END# kgtrafld a=transaction delim2=: delim=_ f=price,quantity i=dat1.csv o=rsl3.csv
$ more rsl3.csv
customer,transaction
A,price:198_quantity:1
B,price:325_quantity:2
C,price:200_quantity:3
D,price:450_quantity:2
E,price:100_quantity:1

例4: NULL値を含む場合

$ more dat2.csv
customer,price,quantity
A,198,1
B,,2
C,200,
D,450,2
E,,
$ mtrafld a=transaction f=price,quantity i=dat2.csv o=rsl4.csv
#END# kgtrafld a=transaction f=price,quantity i=dat2.csv o=rsl4.csv
$ more rsl4.csv
customer,transaction
A,price=198 quantity=1
B,quantity=2
C,price=200
D,price=450 quantity=2
E,

例5: NULL値を含む場合2

出力された結果を-rをつけて再実行し元に戻す。

$ mtrafld -r a=transaction f=price,quantity i=rsl4.csv o=rsl5.csv
#END# kgtrafld -r a=transaction f=price,quantity i=rsl4.csv o=rsl5.csv
$ more rsl5.csv
customer,price,quantity
A,198,1
B,,2
C,200,
D,450,2
E,,

例6: -valOnlyの指定

$ mtrafld -valOnly f=price,quantity a=transaction i=dat2.csv o=rsl6.csv
#END# kgtrafld -valOnly a=transaction f=price,quantity i=dat2.csv o=rsl6.csv
$ more rsl6.csv
customer,transaction
A,198 1
B,2
C,200
D,450 2
E,

関連コマンド

mvsort : トランザクションデータはベクトル型データを処理する一連の処理コマンド(mvから始まる)によって加工できる。

mcross : トランザクションデータとしてではなく、個々のアイテムを独立した項目として出力し、その出現件数を出力する。

mtra : 項目の値をアイテムとしてトランザクションデータを作成する。

mtraflg : 項目名をアイテムとしてトランザクションデータを作成する。

Previous: mtra 縦型データをベクトル項目に変換 Up: コマンドリファレンス Next: mtraflg クロス表をトランザクション項目に変換 MCMD2