如果我们所拥有的只是 .LAST 变量中的总和,我试图弄清楚如何创建一个运行总计。我创建了一个示例数据集,它应该让我更清楚我所追求的:
DATA SALES_DATA;
INPUT REGION_ID STORE_ID YEAR SALES;
DATALINES;
1 1 2000 .
1 1 2001 .
1 1 2002 .
1 1 2003 40
1 2 1977 .
1 2 1978 .
1 2 1979 .
1 2 1980 .
1 2 1981 12
2 3 1999 .
2 3 2000 .
2 3 2001 .
2 4 2002 17
3 4 1956 .
3 4 1957 22
;
因此,如您所见,我们只有商店最后一次营业的数据,其中包括前几年的所有销售额。假设销售额完全是线性的并且逐年增加,我将如何告诉 SAS 获取 STORE_ID.LAST 值,然后将其除以我们有数据的年数,以便将其放入 STORE_ID.FIRST 的 SALES 字段中?一旦我弄清楚如何从最后一个字段中获取值到第一个字段中,我计划只运行通常的运行总计(除以计数后,可以通过以下方式创建:
DATA SALES;
SET SALES;
BY REGION_ID STORE_ID;
IF FIRST.STORE = 1 THEN
COUNT =0;
COUNT+1;
run;
所以,理想情况下,决赛桌的开始是这样的:
DATA SALES_DATA;
INPUT REGION_ID STORE_ID YEAR SALES;
DATALINES;
1 1 2000 10
1 1 2001 20
1 1 2002 30
1 1 2003 40
...
我查看了 PROC EXPAND,但我无法让它适用于我的情况。非常欢迎任何建议!