我有一些PROC REPORT
代码可以生成具有2个分组级别的报告,但是RBREAK
始终只是对所有内容进行汇总。例如,我得到这样的内容:
第1行:100200300之前的A型第2行:400500600之后第3行:100200300之前的B型第4行:400500600之后第5行:总计700800900
是否有任何方法可以使PROC REPORT
完整地归纳为第二级分组?我有140,000多个观察值,现在我正在复制每个观察值,并将第一级分组变量设置为一个常数,以得到包含第二级分组的制造总行:
第1行:100200300之前的A型第2行:400500600之后第3行:100200300之前的B型第4行:400500600之后Row5:总计700800900之前第6行:701 801 901之后
或者即使PROC REPORT
无法自动执行任何操作,是否有更好的方法可以将总数求底?我希望我可以使用多标签格式...但是据我所知,它们在PROC REPORT
中不起作用。
[proc tabulate
确实很容易做到:
/* test data */
data one;
do type = "A", "B";
do time = "Before", "After";
drop AfterPremium;
AfterPremium = 300 * (time="After");
v1 = 100 + AfterPremium;
v2 = 200 + AfterPremium;
v3 = 300 + AfterPremium;
output;
end;
end;
run;
proc tabulate data=one order=data formchar="|-+++++++++";
class type time;
var v1-v3;
tables (type all="All Types")*time, (v1 v2 v3)*sum;
run;
/* on log
+----------------------+------------+------------+------------+
| | v1 | v2 | v3 |
| +------------+------------+------------+
| | Sum | Sum | Sum |
+----------+-----------+------------+------------+------------+
|type |time | | | |
+----------+-----------+ | | |
|A |Before | 100.00| 200.00| 300.00|
| +-----------+------------+------------+------------+
| |After | 400.00| 500.00| 600.00|
+----------+-----------+------------+------------+------------+
|B |Before | 100.00| 200.00| 300.00|
| +-----------+------------+------------+------------+
| |After | 400.00| 500.00| 600.00|
+----------+-----------+------------+------------+------------+
|All Types |Before | 200.00| 400.00| 600.00|
| +-----------+------------+------------+------------+
| |After | 800.00| 1000.00| 1200.00|
+----------+-----------+------------+------------+------------+
*/