Dfreq - フィールド値頻度表

[ 英語 | 日本語 ]

[Dホームページへ]

形式

Dfreq [ options ] [ -g group-by-key-field-list ] key-field-list [ input-file.. ]

説明

Dfreq は,key-field-listで指定されたフィールドの 値の頻度レコードを出力する。 出力レコードは,key-field-list に指定されたフィールドと, 規定フィールド名"count"フィールドを持っている。 このキーフィールドの値は,出力中一意で, "count"フィールドは,その値を持ったDレコード数を示す。 出力レコード順は,key-field-listで指定される キー値の順となる。 これは,Dsort での順と等しい。

出力レコード中のキーフィールドの値は, キーフラグによって次のように変更される。 fフラグは,アルファベット小文字を大文字にする。 nフラグは,値を正規化された数値形式にする。 dフラグは区切り字を除去する。 iフラグは非印字文字を除去する。 出力レコード中のキーフィールドの順は, key-field-listに従い, 入力レコード中の順は保存しない。

オプション-pを指定すると, 出力レコードには"percent"フィールドが付加される。

通常では,欠値(この場合,キーフィールドが一つもないとき) は,入力レコードにカウントしない。 しかし,オプション-mを指定すると,欠値の場合も 入力レコードにカウントされる。 欠値に対する出力レコードでは,キーフィールドは存在せず, "count"フィールド(および指定があれば"percent"フィールド)のみ存在する。

2つい上の入力ファイルがある場合, Dfreq はそれらを連続した一つのファイルのように扱う。 しかし,オプション-Fが指定されると, Dfreqは,頻度レコードを, 各入力ファイルの終わりごとに出力する。 この場合,各出力レコードに"filename"フィールドを付加する。

オプション -g group-by-key-field-list が指定されると, Dfreq は,このキーフィールドの値が変わる (グループ化キーフィールドの値が直前のレコードと異なる) ごと,または各入力ファイルの終わりごとに頻度レコードを出力する。 通常このオプションは,group-by-key-field-listでファイルを Dsortした後で使うが, 必須というわけではない。 グループ処理の場合,"percent"フィールド(もしあれば) は,同一キー値のグループ内のレコード数に基づいて計算される。

次の2つのコマンド

Dfreq -g a b
Dfreq a,b

は,実際上"percent"フィールドをのぞいて同じ結果を出力する。 (前者は各グループごとに100%であるが,後者は入力全体が100%)。 この2つの実際的な違いは,メモリー使用量である。 前者の方が少ないメモリーで実行できる。 なぜなら, Dfreq は,頻度レコードを出力するまでの間すべてのキー値をメモリー上に 保持しているからである。 グループ処理の場合, Dfreq は,グループ化キー値が替わるごとに頻度レコードを出力する。 これに対し通常の処理では,すべての入力ファイルを読んだ後に 頻度レコードを出力する。 したがって,グループ処理のオプションは非常に大きな入力ファイル を処理する場合や,キーフィールドが非常に多種の値を含んでいるような場合 有効である。

出力レコード

各出力レコードは,次のフィールドをこの順に持つ。

filename:
オプション -Fが指定されたとき。 値は入力ファイル名で,シェルによって展開された形。 このフィールドは,入力ファイルが標準入力の場合出力されない。
グループ化キーフィールド群
オプション -gが指定されたとき。 フィールド順は,group-by-key-field-list に指定した順で,値はキーフラグの指定による変形を含む。
キーフィールド群
フィールド順は, key-field-list に指定した順で,値はキーフラグの指定による変形を含む。
count
当該キー値を持つDレコード数。
percent
オプション -pが指定されたとき。 "count"フィールドの値を対象入力レコード数で割ったパーセンテージ。

オプション

-F
入力ファイルごとに処理を行う。 頻度レコードは,入力ファイルごとに出力し, また,"filename"フィールドを各出力レコードに付加する。
-g group-by-key-field-list
グループ処理。頻度レコードをグループ化キーフィールドの 値が変化するごとに出力する。また,group-by-key-field-list のフィールドを各出力レコードに付加する。
-k key-flags
key-field-listおよびgroup-by-key-field に対する省略時キーフラグ。 マニュアル Dintro参照。
-m
欠値の場合も対象レコードとする。
-p
パーセントを計算する。"percent"フィールドを出力する。 値は,当該レコード数の全対象入力レコード数に対するパーセンテージである。 対象入力レコード数は,-F オプションが指定されていれば,当該入力ファイルの入力レコード数, -gが指定されていれば,当該グループのレコード数となる。
-D [i/o]datautf=8|16|32
UTF入出力機能参照。

環境変数

Ddatautf, Didatautf, Dodatautf
UTF入出力機能参照。

メッセージ

マニュアル D_msg参照。

参照

DintroDmeansD_msg

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003