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.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.