- data input1;
- set input;/*你的数据集*/
- SHRCHGYR=year(SHRCHGDT);
- proc sort;by STKCD SHRCHGYR;
- run;
- data output;
- set input1;
- by STKCD SHRCHGYR;
- retain SHRCHGDT1 NSHRTTL1;
- if first.STKCD then do;
- first_year=SHRCHGYR;
- SHRCHGDT1=SHRCHGDT;
- NSHRTTL1=NSHRTTL;
- end;
- /*从2001年开始*/
- if first_year>2001 then do;
- do i=2001 to first_year-1;
- SHRCHGDT1=mdy(12,31,i);
- output;
- end;
- end;
-
- do i=year(SHRCHGDT1)+1 to SHRCHGYR-1;
- SHRCHGDT1=mdy(12,31,i);
- output;
- end;
- SHRCHGDT1=SHRCHGDT;
- NSHRTTL1=NSHRTTL;
- format SHRCHGDT1 YYMMDDN8.;
- if last.SHRCHGYR then output;
- /*如果需要到2012结束,不需要请注释掉*/
- if last.STKCD then do;
- do i=SHRCHGYR+1 to 2012;
- SHRCHGDT1=mdy(12,31,i);
- output;
- end;
- end;
-
- keep STKCD SHRCHGDT1 NSHRTTL1;
- run;