I am trying to create some macro variables for multiple months as follows:
%let datep = date();
data _null_;
set b (obs=1);
prv1mnt = put(intnx('month',&datep.,-1,'beginning'),monyy7.);
call symput('prv1mntm',prv1mnt);
prev_1_mon_dt =intnx('month',&datep.,-1,'beginning');
prev_1_mon = year(prev_1_mon_dt)*100 + month(prev_1_mon_dt);
call symput('pr1mn',prev_1_mon);
run;
I need to do the above processing for last 12 months. Can it be done through loop?
Not 100% sure what you're asking, but wouldn't a macro do loop work?
%do i=1 %to 12;
%let datep = %sysfunc(intnx(month, %sysfunc(date()), -1*&i, b));
*rest of code;
%end;
Not 100% sure what you're asking, but wouldn't a macro do loop work?
%do i=1 %to 12;
%let datep = %sysfunc(intnx(month, %sysfunc(date()), -1*&i, b));
*rest of code;
%end;
Thanks Reeza.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.