Dfreq - フィールド値頻度表

[ 英語 | 日本語 ]

[Dホームページへ]

形式

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

DfqDfreqの短縮形(UNIXのみ)。

説明

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