出力形式を使用したグループ化

FREQプロシジャは、変数の値を、その出力形式に従ってグループ化します。FORMATステートメントを使って変数に出力形式を割り当てると、FREQプロシジャは、変数値をフォーマットした後で、オブザベーションを度数表やクロス集計表へと分割します。

たとえば、変数Xが値1.1、1.4、1.7、2.1、2.3を持つとします。これらの各値は、度数表内の1つのレベルとして表示されます。各値を1桁に四捨五入する場合、PROC FREQステップ内に次のステートメントを指定します。

   format X 1.;

この結果作成される表では、フォーマットされたレベル1の度数カウントは2、フォーマットされたレベル2の度数カウントは3として表示されます。

FREQプロシジャは、フォーマットされた文字変数を同じ方法で取り扱います。出力形式を使用すると、オブザベーションを度数表やクロス集計表の各レベルへとグループ化できます。FREQプロシジャは、文字出力形式の全体的な値を使用して、オブザベーションを分類します。

また、FORMATステートメントを使用すると、FORMATプロシジャにより作成された出力形式を変数に割り当てることができます。ユーザ定義出力形式は、変数のレベル数を決定し、表ラベルを提供します。同じデータを異なる出力形式で使用すると、変数値の異なる分類に基づいて度数カウントや統計量を計算できます。

FORMATプロシジャを使用して、欠損値と非欠損値を1つのカテゴリへと結合するようなユーザ定義出力形式を作成する場合、FREQプロシジャは、そのユーザ定義出力形式でフォーマットされた値のカテゴリ全体を欠損値として扱います。たとえば、あるアンケートでは回答コード1がYes、回答コード2がNo、回答コード8が無回答を表すとします。次のPROC FORMATステートメントは、このようなアンケート用のユーザ定義出力形式を作成します。

proc format;
   value Questfmt 1   ='Yes'
                  2   ='No'
                  8,. ='Missing';
run;

FORMATステートメントを使ってQuestfmt.をある変数に割り当てると、その変数の度数表には、回答コード8の度数カウントが含められなくなります。無回答の度数を表に含めるには、TABLESステートメントでMISSINGオプションまたはMISSPRINTオプションを指定する必要があります。 このレベルの度数カウントには、値8または欠損値(.)を含むオブザベーションが含められます。

度数表やクロス集計表には、文字変数と数値変数の両方の値が(フォーマットされていない)内部値に基づいて昇順でリスト表示されます。値の表示順を変更するには、ORDER=オプションを使用します。これらの値を出力形式に基づいて昇順でリスト表示するには、PROC FREQステートメントでORDER=FORMATTEDオプションを使用します。

FORMATステートメントの詳細は、SAS Language Reference: Conceptsを参照してください。