Hello
User define 2 macro variables
%let minYYMM=2007;
%let maxYYMM=2106;
I want to create another macro variable called List that will get YYMM values between &minYYMM and &maxYYMM.
So in this case the desired value of the new macro variable is 2007+2008+2009+2010+2011+2012+2101+2102+2103+2104+2105+2106
Thanks
Use a DO loop with INTNX:
data _null_;
length vector $32767;
start = input("20&minyymm.01",yymmdd10.);
do while (start le input("20&maxyymm.01",yymmdd8.));
vector=catx("+",vector,substr(put(start,yymmddn8.),3,4));
start = intnx('month',start,1);
end;
call symputx("vector",vector);
run;
This loop can be used to directly create repeated code with CALL EXECUTE or similar.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
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!
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.
Ready to level-up your skills? Choose your own adventure.