我有一个看起来像这样的数据集。
data test;
input cat1 $ cat2 $ score;
datalines;
A D 1
A D 2
A E 3
A E 4
A F 4
B D 3
B D 2
B E 6
B E 5
B F 6
C D 8
C D 5
C E 4
C E 12
C E 2
C F 7
;
run;
我想基于此表创建表格,这些表格是此数据的汇总形式。例如,我想要一个表将每个cat1和cat2的每个分数相加,就像这样
proc sql;
create table all as select
'all' as cat1
,'all' as cat2
,sum(score) as score
from test
group by 1,2
;quit;
我想要一张表来总结cat1 ='A'的所有分数,尽管cat2是这样的,就像这样
proc sql;
create table a_all as select
cat1
,'all' as cat2
,sum(score) as score
from test
where
cat1='A'
group by 1,2
;quit;
我想要一张表来总结cat1 ='A'和cat2 ='E'的分数,就像这样
proc sql;
create table a_e as select
cat1
,cat2
,sum(score) as score
from test
where
cat1='A'
and
cat2='E'
group by 1,2
;quit;
依此类推。我想要一套包含各种可能组合的综合表格。如果它们有效,我可以使用循环。我正在使用的真实数据集有8个类别(而不是这里的2个),在这些类别中,有多达98个级别。所以我写的循环已经嵌套了8度,占用了大量的时间。调试也很痛苦。
我可以应用某种功能或特殊数组来创建我正在谈论的这一系列表吗?谢谢!
答案 0 :(得分:3)