I want to add another row based on the value.
In the data below, for the first observation, for example, for firm 1, starting from 15-JAN-2012, for every 12 month, for 3 times, I need to give $1000. For observation 4, for firm 2, starting from 05-FEB-2015, every 6 month, for two times, I need to give firm $1000. (I just put two firms for brevity)
data schedule;
input firmid startdate mmddyy10. unit times amount;
datalines;
1 01/15/2012 12 3 1000
1 03/15/2013 12 1 2000
1 01/30/2011 3 4 500
2 02/05/2015 6 2 1000
;
run;
proc print data=schedule;
format startdate date11.;
run;
In the end, I need a table that looks like below
Could you please help me creating this table?
Thanks!
Here you go:
data schedule;
input firmid startdate mmddyy10. unit times amount;
attrib startdate length=4 format=date9.;
datalines;
1 01/15/2012 12 3 1000
1 03/15/2013 12 1 2000
1 01/30/2011 3 4 500
2 02/05/2015 6 2 1000
;
run;
data want;
set schedule;
output;
do i = 1 to times - 1;
startdate = intnx('month', startdate, unit, 's');
output;
end;
keep firmid startdate amount;
run;
Here you go:
data schedule;
input firmid startdate mmddyy10. unit times amount;
attrib startdate length=4 format=date9.;
datalines;
1 01/15/2012 12 3 1000
1 03/15/2013 12 1 2000
1 01/30/2011 3 4 500
2 02/05/2015 6 2 1000
;
run;
data want;
set schedule;
output;
do i = 1 to times - 1;
startdate = intnx('month', startdate, unit, 's');
output;
end;
keep firmid startdate amount;
run;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.