楼主最近开始自学SAS,发现BY语句的语法很多,其中见过两个程序如下:(数据集XYT.balance 中有很多的上市公司2001年-2011年财务报表的变量,其中CODE是公司代码,date是会计期间。所以数据表中code和date中都有很多重复的值。)
程序 一:
proc sort data=xyt.balance out=tmp2;
by code date;
run;
程序二:
data tmp3;
retain i;
set tmp2;
by code date;
if first.code then do;
i=0;
end;
if first.DATE then do;
if DATE in('31dec2001'd,'31dec2002'd,'31dec2003'd,'31dec2004'd,'31dec2005'd,'31dec2006'd,'31dec2007'd,'31dec2008'd,'31dec2009'd,'31dec2010'd,'31dec2011'd) then i=i+1;
else i=i;
end;
run;
我的问题就是程序一和程序二的BY语句有什么不同呢?最好解读一下第二个程序,thx~!