按组汇总并在 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
为您提供列总计,您可以在 ,
之前执行相同的操作以获得行总计。
我已经获得了我需要的数据,只是想更好地呈现它,更像是 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
为您提供列总计,您可以在 ,
之前执行相同的操作以获得行总计。