ivylee_777 发表于 2012-11-30 15:49 
十分感谢,moyunzheng!我在所有的日期上run了,成功!能请你指教一下从retain开始的那些code的功能吗?先 ...
retain id;
存在set,merge,update等语句时,每次从数据源读入一条观测时,PDV中的变量会被重置为缺失。
Retain的作用就是保留这个id变量的值不被重围为缺失。
if weekday(date)=4 then id=sum(id,1);
weekday()的求变量date的星期几值,结果是1~7,规定1代表周日.
结合retain语句,每遇到周三时,id的值自动加1。如果不是周三,那么id值不变
之所以用id=sum(id,1),而不是id=id+1,是因为
sum(.,1)=1 但是 .+1=.
另外,不需要第一个周三前面的,所以我把id的初始值为缺失而不是0或者1
下面的语句经常会被使用,结果与上面的会有些不同,第一个周三前面的id为0