Community talk about communities.sas.com. Meta!

Difference in days between two dates in two different rows and different columns

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 9
Accepted Solution

Difference in days between two dates in two different rows and different columns

[ Edited ]

Hi,

I am trying to compute the difference in days between two dates that are located in two different rows and in different columns by id. For example,

 

id     date1               date2               diff

1      03/01/1991     08/31/1992      09/01/1992 - 08/31/1992    (or 08/31/1992 - 09/01/1992)

1      09/01/1992     07/31/1992      08/01/1996 - 07/31/1992

1      08/01/1996     06/30/1997      07/01/1997 - 06/30/1997

1      07/01/1997     07/31/1997

2     09/01/1993     01/15/1994     

3     01/01/1994     01/01/1995       01/01/1995 - 01/01/1995

3     01/01/1995     05/02/1999    

 

I will appreciate your help. Thanks!


Accepted Solutions
Solution
‎01-12-2017 02:12 PM
Super User
Posts: 5,085

Re: Difference in days between two dates in two different rows and different columns

It's not necessarily simple, but it doesn't take a lot of code.  Assuming your dates are SAS dates, not character strings:

 

data want;

set have;

by id;

set have (firstobs=2 keep=date1 rename=(date1=next_date)) have (drop=_all_);

if last.id=0 then diff = next_date - date2;

drop next_date;

run;

View solution in original post


All Replies
Solution
‎01-12-2017 02:12 PM
Super User
Posts: 5,085

Re: Difference in days between two dates in two different rows and different columns

It's not necessarily simple, but it doesn't take a lot of code.  Assuming your dates are SAS dates, not character strings:

 

data want;

set have;

by id;

set have (firstobs=2 keep=date1 rename=(date1=next_date)) have (drop=_all_);

if last.id=0 then diff = next_date - date2;

drop next_date;

run;

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 198 views
  • 1 like
  • 2 in conversation