TABULATEプロシジャの交差レベルについて

[OS]ALL
[リリース]
[キーワード]

[質問]

TABULATEプロシジャで以下のプログラムを実行すると、エラーが発生します。 原因は何でしょうか。

(プログラム)

proc tabulate data=sample ;
   class class1 class2 class3 ... class10 ;
   var var1 var2 ... varn ;
   tables row1*row2*row3* ...  *row10 ;
run;

(エラー)

ERROR: COL 交差が指定した深さを越えています.

[回答]

上記のプログラムでは、10個の変数を交差(クロス、ネスティングとも呼びます)させています。 しかし、TABULATE プロシジャでは、さらに統計量(N やMEAN など)も1つの交差レベルとして扱うので、この場合は11レベルの交差になります。

TABULATEプロシジャが受け付ける交差(次元内の交差)のレベルは、DEPTH= オプションで指定できますが、そのデフォルト値は 10 です。 したがって、次のプログラム例のように、 DEPTH= に十分なレベル数(この場合は11)を指定して、TABULATEプロシジャを実行してください。

proc tabulate data=sample DEPTH=11 ;
   class class1 class2 class3 ... class10 ;
   var var1 var2 ... varn ;
   tables row1*row2*row3* ... *row10 ;
run;