按组汇总并在 sas 中报告

aggregate by groups and report in sas

我已经获得了我需要的数据,只是想更好地呈现它,更像是 excel 中的枢轴 table。为我提供 freq 正确值的当前代码如下:

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

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

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 表现不佳,我不确定那是什么用。在此先感谢您的帮助

PROC MEANS 并不是真正正确的工具:您需要 PROC TABULATE.

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

类似的东西。 all 为您提供列总计,您可以在 , 之前执行相同的操作以获得行总计。