按组聚合并以sas报告

时间:2017-12-04 12:59:51

标签: sas aggregate display

我已经获得了我需要的数据,只是想更好地呈现它,更像是excel中的数据透视表。给我正确的freq值的当前代码如下:

proc means data = d sum;  
vars mth age freq;  
class mth age;  
run;

变量" mth"和"年龄"是类别(每组7组),目标是获得变量" freq"的总和。对于" mth"之间的所有交叉点和"年龄"。这是成功的,结果格式如下:

mth  age NObs Variable Sum
1     1   20  mth      20
              age      20
              freq     40
      2   30  mth      30
              age      30
              freq     65
...    ...       ... 
7     1   25  mth      25
              age      25
              freq     48

同样,我的代码的频率求和是正确的,我只想显示如下结果:

  7  6  5  4  3  2  1
                         (<- column sum totals) 
1                40  40  (<- intersection sums for freq) 
2
...
7

proc sql不是很好玩,我不知道那是什么用的。在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

PROC MEANS不是真正合适的工具:您需要PROC TABULATE

proc tabulate data=have;
  class mth age;
  var freq;
  tables mth,(all age)*freq*sum;
run;

这些方面的东西。 all为您提供了列总计,您可以在,之前执行相同操作以获取行总数。