BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
andp
Calcite | Level 5

Hello,

I'm currently trying to do what should be a simple task but the searches for proc expand and retain functions haven't been giving me the code that I need.

I currently have 3 columns, ID, Startdate, enddate, and I'd like to expand my dataset to fill in the months between my start and end dates.

For example:

ID          Startdate     Enddate

1           01/2001       03/2001

Would become:

ID          date

1          01/2001

1          02/2001

1          03/2001

Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
tish
Calcite | Level 5

I assume that startdate and enddate are both SAS dates in mmyys7. format:

data new (keep=id date);

   set old;

   format date mmyys7.;

   do increment = 0 to intck('month', startdate, enddate);

      date = intnx('month', startdate, increment, 'beginning');

      output;

   end;

run;

View solution in original post

2 REPLIES 2
tish
Calcite | Level 5

I assume that startdate and enddate are both SAS dates in mmyys7. format:

data new (keep=id date);

   set old;

   format date mmyys7.;

   do increment = 0 to intck('month', startdate, enddate);

      date = intnx('month', startdate, increment, 'beginning');

      output;

   end;

run;

andp
Calcite | Level 5

Works exactly as I wanted! Thanks!

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 3557 views
  • 0 likes
  • 2 in conversation