class ステートメントの変数に欠損値がある場合の proc summary の動作に問題があります。以下の例では、test_outは可能なすべての型の組み合わせを示します。test_missing_outは、 var1が欠落していないという事実にもかかわらず、var2が欠落していた合計に対してvar3を考慮せず、考慮しません。
data test;
infile datalines dsd delimiter=' ';
input var1 var2 $ var3;
datalines;
1 data 200
2 data2 103
;
run;
proc summary
data=test;
class var1 var2;
var var3;
output out=test_out sum=sum;
run;
data test_missing;
infile datalines dsd delimiter=' ';
input var1 var2 $ var3;
datalines;
1 data 200
2 103
;
run;
proc summary
data=test_missing;
class var1 var2;
var var3;
output out=test_missing_out sum=sum;
run;