各位前辈:我需要将每个公司每个年份每个季度的“纯”季度现金流计算出来,但已有数据是该年累计数,所以需要分年份相减,数据截取如下:(mm是我自己计算的,源数据不包含它)
| year | qtr | cfy | mm |
1998 | 2 | | |
1998 | 4 | 58.108 | |
1999 | 2 | | |
2000 | 2 | 51.801 | 51.801 |
2000 | 4 | 153.092 | 94.984 |
2001 | 2 | | |
2001 | 4 | 32.285 | -120.807 |
2002 | 2 | -22.213 | -22.213 |
2002 | 4 | 16.39 | -15.895 |
2003 | 2 | 3.525 | 3.525 |
2003 | 4 | 61.607 | 45.217 |
2004 | 1 | 34.095 | 34.095 |
2004 | 2 | 56.601 | -5.006 |
2004 | 3 | 79.195 | 22.594 |
2004 | 4 | 74.889 | -4.306 |
2005 | 1 | 22.519 | 22.519 |
2005 | 2 | 18.656 | -56.233 |
2005 | 3 | 29.594 | 10.938 |
2005 | 4 | 50.717 | 21.123 |
2006 | 1 | 19.307 | 19.307 |
2006 | 2 | 72.25 | 21.533 |
2006 | 3 | 104.285 | 32.035 |
2006 | 4 | 143.792 | 39.507 |
程序如下:
data tt4 (keep=code year qtr cfy mm );
set aa;
by code year qtr;
if first.year then mm=cfy;
else mm=cfy-lag(cfy);
run;
可以看到,第一、三、四季度的数据都没问题,可是不知道为什么第二季度的值,不是按照cfy-lag(cfy)计算,而减的是上一年度最后一个季度的值。请问我的程序是哪里错了,为什么会这样啊???谢谢~~~~