Hi everyone,
Below I have data now for 2 firms.
data now;
input ticker $ EventDate EvntMonth;
datalines;
AA 09262013 9
ADI 11192012 11
;
run;
I want to create data like this (below demonstration ignore the second firms and the other 4 years after the AA's event date). The row will be added to five years after the event date for EACH firm. Please help to show me how I can do that. I am appreciated your help!
data want;
input ticker $ EventDate EvntMonth RealMonth countmonth AccMonth;
datalines;
AA 09262013 092013 9 0 092013
AA 09262013 092013 10 1 102013
AA 09262013 092013 11 2 112013
AA 09262013 092013 12 3 122013
AA 09262013 092013 1 4 012014
AA 09262013 092013 2 5 022014
AA 09262013 092013 3 6 032014
AA 09262013 092013 4 7 042014
AA 09262013 092013 5 8 022014
AA 09262013 092013 6 9 022014
AA 09262013 092013 7 10 022014
AA 09262013 092013 8 11 082014
AA 09262013 092013 9 12 022014
;
run;
I look for the solution and find that Reeza used macro do loop for increment months as follows:
%macro loop;
%do i=1 %to 12;
%let date=%sysfunc(intnx(month, %sysfunc(today()), &i.), date9.);
%put &date.;
%end;
%mend;
%loop;
But I do not know how to apply it to my case. Please help me! thank you so much!
Try this
data want;
set now;
do Countmonth=0 to 12;
EvntMonth =EventDate;
AccMonth=intnx('month',EventDate,Countmonth);
RealMonth =month(AccMonth);
format EvntMonth AccMonth yymmn6. ;
output;
end;
run;
Try this
data want;
set now;
do Countmonth=0 to 12;
EvntMonth =EventDate;
AccMonth=intnx('month',EventDate,Countmonth);
RealMonth =month(AccMonth);
format EvntMonth AccMonth yymmn6. ;
output;
end;
run;
Hi ShiroAmanda, I'm appreciated your quick response! This works perfectly in my case!
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
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.