- %MACRO TEST_MACRO();
- %LET YEAR=2001;
- *比如暂定数据的起始年份为2001年,数据总共到2017年;
- %DO I=0 %TO 16;
- %LET YEAR1=%EVAL(&YEAR.+&I.);
- PROC SORT DATA=WORK.A&YEAR1.;BY ID;RUN;
- %DO J=1 %TO 5;
- %LET YEAR%EVAL(&J.)=%EVAL(&YEAR.+&I.+&J.);
- %LET T_YEAR=&&YEAR&J..;
- PROC SORT DATA=WORK.B&T_YEAR.;BY ID;RUN;
- %END;
-
- DATA RSLT_&YEAR0.;
- MERGE WORK.A&YEAR0.(IN=IN0)
- WORK.B&YEAR1.(IN=IN1)
- WORK.B&YEAR2.(IN=IN2)
- WORK.B&YEAR3.(IN=IN3)
- WORK.B&YEAR4.(IN=IN4)
- WORK.B&YEAR5.(IN=IN5)
- ;
- BY ID;
- IF IN0;
- IF IN0 AND IN1 THEN FLAG1=1;ESLE FLAG1=0;
- IF IN0 AND IN2 THEN FLAG2=1;ESLE FLAG2=0;
- IF IN0 AND IN3 THEN FLAG3=1;ESLE FLAG3=0;
- IF IN0 AND IN4 THEN FLAG4=1;ESLE FLAG4=0;
- IF IN0 AND IN5 THEN FLAG5=1;ESLE FLAG5=0;
- RUN;
- %END;
- %MEND;
- %TEST_MACRO();