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;
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.