Sas-crosstabulations

提供:Dev Guides
移動先:案内検索

SAS-クロス集計

クロス集計では、2つ以上の変数のすべての可能な組み合わせを使用して、条件付きテーブルとも呼ばれるクロステーブルを作成します。 SASでは、 PROC FREQTABLES オプションを使用して作成されます。 たとえば、各車種カテゴリの各メーカーの各モデルの頻度が必要な場合、PROC FREQのTABLESオプションを使用する必要があります。

構文

SASでクロス集計を適用するための基本的な構文は次のとおりです-

PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;

以下は、使用されるパラメータの説明です-

  • Dataset はデータセットの名前です。
  • Variable_1およびVariable_2 は、頻度分布を計算する必要があるデータセットの変数名です。

以下に示すように、 SASHELP.CARS から作成されたデータセットcars1から、各自動車ブランドで利用可能な自動車の種類をいくつ見つけるかを考えてみましょう。 この場合、個々の頻度値と、メーカーおよびタイプ全体の頻度値の合計が必要です。 結果が行と列全体の値を示していることがわかります。

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc FREQ data = CARS1;
tables make*type;
run;

上記のコードが実行されると、次の結果が得られます-

cross_tab_1

3つの変数のクロス集計

3つの変数がある場合、それらの2つをグループ化し、これら2つそれぞれを3番目の変数とクロス集計できます。 したがって、結果には2つのクロステーブルがあります。

以下の例では、車の型に関して、車の各タイプと車の各モデルの頻度を見つけます。 また、nocolオプションとnorowオプションを使用して、合計値とパーセンテージ値を回避します。

proc FREQ data = CARS2 ;
tables make *(type model) /nocol norow nopercent;
run;

上記のコードが実行されると、次の結果が得られます-

cross_tab_2

4つの変数のクロス集計

変数が4つの場合、ペアの組み合わせの数は4に増えます。 グループ1の各変数は、グループ2の各変数とペアになります。

以下の例では、各メーカーと各モデルの車の長さの頻度を見つけます。 同様に、各メーカーおよび各モデルの馬力の頻度。

proc FREQ data = CARS2 ;
tables (make model)* (length  horsepower) /nocol norow nopercent;
run;

上記のコードが実行されると、次の結果が得られます-

cross_tab_3