BookmarkSubscribeRSS Feed
SAS09
Calcite | Level 5
Does anyone have any thoughts on how I might be able to automate the below list of macro variables. Mth1 changes every month and the format of the mth varaibles need to the same yymm-1004, 1005 etc. I would greatly appreciate any ideas.

rsubmit;
%let mth1 = 1004;
%let mth2 = 1003;
%let mth3 = 1002;
%let mth4 = 1001;
%let mth5 = 0912;
%let mth6 = 0911;
%let mth7 = 0910;
%let mth8 = 0909;
%let mth9 = 0908;
%let mth10 = 0907;
%let mth11 = 0906;
%let mth12 = 0905;
endrsubmit;
4 REPLIES 4
Cynthia_sas
Diamond | Level 26
Hi:
There are a couple of different ways that you could do this. You could do this in a DATA step program and create the macro variables with CALL SYMPUT or you could do this in a Macro program and use %SYSFUNC. In either case, you'd have to use INTNX to move the dates backward in time.

My inclination would be to use CALL SYMPUT inside a DATA step program and then wrap the DATA step program in a Macro program so that the start month, year and number of months could all be provided as parameters to the macro program.

cynthia
Peter_C
Rhodochrosite | Level 12
rsubmit ;
%let mth1=1apr2010 ;
data _null_ ;
do d= 1 to 12 ;
date = intnx( 'month', "&mth1"d, 1-d) ;
mnth = put( date, yymmN4. ) ;
call symputx( 'mth' !! put( d, 2.-L), mnth ) ;
end;
stop ;
run;
endrsubmit ;
Cynthia_sas
Diamond | Level 26
Thanks, Peter! And thanks for remembering the SYMPUTX.
cynthia
SAS09
Calcite | Level 5
Thank you Cynthia and Peter! It worked!!

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1740 views
  • 0 likes
  • 3 in conversation