使用sas实现同比 环比 占比,其中环比和占比是使用proc report实现的,环比使用data步实现,但是其中每年的总计是使用proc report来实现的。
proc report 可以实现proc print proc tabluate proc sort proc means 以及data步的一些功能,所以有中想法,把proc report当做是进行复杂统计的实现方法之一,比如sql中的开窗函数就可以用proc report实现。
以下是具体的代码和数据。
转载请注明出处:http://www.cnblogs.com/SSSR/p/6904636.html
代码参考自:Using PROC REPORT To Produce Tables With Cumulative Totals and Row Differences
更新–20170525 20:10
总结:report的compute步中是先一列一列的计算,新增列的时候可以用前面列的数据,跟在data步中新建列感觉区别不大,可以使用data步中的函数。
最后的BREAK AFTER year / SUMMARIZE SKIP OL UL ;这里只能是summarize求和,不能是其他的。
想着测试一下data步中的lag函数在report的compute中是否可以使用,没想到呀!居然可以直接求出来同比,大赞,记录下。
DATA quarter;
DO year=97 TO 99;
DO j=1 TO 12;
IF j=1 THEN xx='1dec1997'd;
QUARTER=QTR( intnx('month',xx,J) );
DO n=1 to 100;
sales=int(normal(123)*(20)