Ordering Data

Reply
Contributor
Posts: 30

Ordering Data

I have data that looks like this:

Patient          ProgramDate         FinanceDate

A                    1/1/2012                    2/3/2012

A                      2/5/2012                    4/6/2012

A                         .                         5/25/2012

B                      2/1/2012               4/1/2012

B                         .                              4/5/2012

The data needs to look like this:

Patient          VisitDates

A                    1/1/2012

A                    2/5/2012

A                    4/6/2012

A                     5/25/2012

B                     2/1/2012

B                    4/1/2012

B                    4/5/2012

Basically I need the Finance Date to match up to a Program Date.  No Finance Dates are allowed to Match up to the earliest ProgramDate.  The finance date can be counted for in the Program Date if it occurs prior to a singular date.  This is why Patient A does not have a VisitDate for 2/3/2012.  This one is 'counted' twice and we only need to show one date.

Super Contributor
Posts: 490

Re: Ordering Data

data have;

input Patient $ ProgramDate: mmddyy10. FinanceDate: mmddyy10.;

cards;

A 1/1/2012 2/3/2012

A 2/5/2012 4/6/2012

A . 5/25/2012

B 2/1/2012 4/1/2012

B . 4/5/2012

;

run;

data want (keep=Patient VisitDate);

set have;

x=lag(FinanceDate);

rename ProgramDate=VisitDate;

if ProgramDate=. then do;

    ProgramDate=x ;

        output;

    ProgramDate=FinanceDate;

        output;

end;

else output;

run;

Ask a Question
Discussion stats
  • 1 reply
  • 171 views
  • 0 likes
  • 2 in conversation