data mdm;
do i=232 to 280;
output;
end;
format dt mmddyy10.;
run;
The above datastep creates a number sequence starting at 232 and ending at 280
The dataset I am working defines a date based on the number in month sequence. For example
232 represents 01/31/15, 233 represents 02/28/15 etc.... i represents the numberic sequence. How can I add a date sequence starting at 232 and a variable say dt and have it mirror the number sequence? Also as you can see the number ends at 280, how can I set it up to continue for future months, say 232 to the previous month even when the previous month becomes greater than 280???
data mdm;
new='31Jan2015'd;
do i=232 to 280 by 1;
j=i-232;
output;
new=intnx('month',new,1+j,'e');
end;
format new date9.;
run;
data mdm;
new='31Jan2015'd;
do i=232 to 280 by 1;
j=i-232;
output;
new=intnx('month',new,1+j,'e');
end;
format new date9.;
run;
Here's a variation on the theme:
data want;
do i=232 to 280;
date = intnx('month', '31jan2015'd, i - 232, 'e');
output;
end;
drop i;
run;
For your second question, you'll have to give an example of what "the previous month" means. I'm sure it's possible, but I'm not sure what needs to happen.
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.