【发布时间】:2016-07-02 05:35:29
【问题描述】:
我有一个看起来像这样的数据集。
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 度并且占用了大量的时间。调试也很痛苦。
我可以应用某种函数或特殊数组来创建我正在谈论的这一系列表吗?谢谢!
【问题讨论】: