我正在研究PROC报告。有类似下面的要求。我有点犹豫使用PROC TABULATE并想尝试PROC报告。
我的要求如下:
PRODUCT应显示为ACROSS变量,并且在每个PRODUCT下,SALES的SUM应按区域显示。
proc report data=shoes;
column sales product , region ;
define product / across;
define region / group; * --> Need the report by REGION ;
define sales/ analysis;
run;
但是这段代码给我一个错误:
ERROR: A DISPLAY or GROUP variable above or below an ACROSS variable requires that there be an ORDER, GROUP, or DISPLAY variable in the report that is not above or below an ACROSS variable.
如何单独使用PROC REPORT执行此操作。这真的有可能吗?或者由于这个限制我需要去TABULATE吗?
答案 0 :(得分:2)
您的堆叠顺序相反。您需要在逗号后面放置跨栏。在逗号后面加上区域意味着您希望区域嵌套在产品中 - 这可能不是您想要的(以及SAS无法使用此代码的原因 - 因为否则无法定义行)。
proc report data=sashelp.shoes;
column region sales,product;
define product / across;
define region / group; * --> Need the report by REGION ;
define sales/ analysis;
run;
要了解如果您将其与原来的内容一起使用会是什么样子,请参阅此表:
proc report data=sashelp.shoes;
column sales product, region subsidiary;
define product / across;
define region / group; * --> Need the report by REGION ;
define sales/ analysis;
define subsidiary/group;
run;
我怀疑这完全不是你想要的。虽然它本身就是一个非常有趣的表。