This is surely an FAQ. I'm passing a year (1999 or 2000) into a SAS program. Everything works fine for 1999: 1 %PUT &yyyy; 1999 2 %LET yy=%SUBSTR(&yyyy,3); /* last two digits of yyyy */ 3 %PUT &yy; 99 4 5 DATA _null_; 6 CALL SYMPUT('fpath', cat("/wrds/taq.",&yyyy,"/taq",&yy,"d/sasdata")); 7 RUN; 8 %PUT &fpath; /wrds/taq.1999/taq99d/sasdata but fails for 2000: 1 %PUT &yyyy; 2000 2 %LET yy=%SUBSTR(&yyyy,3); /* last two digits of yyyy */ 3 %PUT &yy; 00 4 5 DATA _null_; 6 CALL SYMPUT('fpath', cat("/wrds/taq.",&yyyy,"/taq",&yy,"d/sasdata")); 7 RUN; 8 %PUT &fpath; /wrds/taq.2000/taq0d/sasdata I need the final character string to be "/wrds/taq.2000/taq00d/sasdata" (two zeros before d, not one!) For some reason, &yy doesn't give me 00 when it appears within the CALL SYMPUT argument list. How, please, can I fix this problem? Thank you!
... View more