Sas 获取各商店和各月的平均价格

Sas 获取各商店和各月的平均价格,sas,Sas,我正在尝试使用proc制表程序,以得出一些可配置项目的平均价格,跨商店和跨月。下面是我需要处理的示例数据集 Configuration|Store_Postcode|Retail Price|month 163|SE1 2BN|455|1 320|SW12 9HD|545|1 23|E2 0RY|515|1 下面的代码显示每个配置的月度平均价格 proc tabulate data=cs2.pos_data_raw; class configuration store_postcode

我正在尝试使用proc制表程序,以得出一些可配置项目的平均价格,跨商店和跨月。下面是我需要处理的示例数据集

Configuration|Store_Postcode|Retail Price|month
163|SE1 2BN|455|1
320|SW12 9HD|545|1
23|E2 0RY|515|1
下面的代码显示每个配置的月度平均价格

proc tabulate data=cs2.pos_data_raw;
    class configuration store_postcode month;
    var retail_price;
    table configuration,month*MEAN*retail_price;
run;
但是,我可以在商店邮政编码级别上再将其分组一次吗?我将代码修改为如下所示,但执行此操作会使系统崩溃

proc tabulate data=cs2.pos_data_raw;
    class configuration store_postcode month;
    var retail_price;
    table configuration,store_postcode*month*MEAN*retail_price;
run;

如果我的方法不正确,请给出建议,或者我在过程列表中做错了什么,导致系统崩溃。

我不确定这是否准确回答了您的问题,因为我是SAS的新手,但当我将
商店邮政编码*月份*平均*零售价格
切换到
月份*商店邮政编码*平均*零售价格
时,它没有崩溃。我只是猜测,这是因为您的数据只包含1个月值和多个邮政编码值,因此月份是最一般的分类级别,然后它变得更具体

另一方面,我尝试以另一种方式格式化表格,并按邮政编码对数据进行分段:

proc tabulate data=pos_data_raw;
class configuration store_postcode month;
var retail_price;
table store_postcode*configuration, month*MEAN*retail_price;
run;
输出如下所示:


其中,表的左侧有邮政编码和配置id,顶部有月份和零售价格

SAS会话是否消失了?整个电脑崩溃了吗(可能性不大)?如果日志中有可以捕获的错误消息,请显示它们。数据中有多少行?cs2是远程库参考吗?ODS的目的地是什么(html、pdf、excel、其他)?数据中总共有多少行?行维度基数(有多少种不同的配置)和列维度基数(有多少种不同的邮政编码*月份)是多少?我猜是一个非常大的列维度加上ods目标导致了问题。您可以使用cs2.pos#u data#u raw(obs=#####)和do运行###1、10、100、1000等来解决数据/ods问题,直到崩溃发生。您可能还希望在任何组合中执行以下操作:A)交换维度(将配置放在逗号的rhs上),B)使用页面维度,C)使用by语句,D)使用where语句鉴于存在大量PostalCodes,您可能会使输出崩溃。我建议可能使用PROC MEANS预先汇总数据,然后使用PROC REPORT显示数据。将计算与显示分离可能会有所帮助。