Help using Base SAS procedures

Retaining only first and last patient visit in dataset

Accepted Solution Solved
Reply
Regular Contributor
Posts: 152
Accepted Solution

Retaining only first and last patient visit in dataset

Hello


I have a list of hospital where chart number is the patient identifier and account number is the unique identifier for the visit.  I would like to create a data set of just the first visit for the chart number and the last visit for the chart number.

data have;

input @1  chartno $6.
         @7  acctno  $3.
         @10 admdate yymmdd8.
         @18 sepdate yymmdd8.
        @26 postal $6.
   ;

format admdate yymmdd10. sepdate yymmdd10.;

cards;
1111110012012032920120331N0H2C1
2222220022012050120120515L4M6X6
3333330032012060120120607L4N4A8
1111110042012040220120410N4L1H4
4444440052012060320120615N4L1S7
5555550062012053120120603L0L2K0
2222220072012070120120713L4M6X6
2222220082012072020120725L9Y2M7
4444440092012081320120817N4L1S7
3333330102012061520120621L4N4A8
1111110112012110120121130N4L1H4
run;

For the above for chartno 111111 I want the data set to only include the March 31, 2012 visit and the November 30, 2012 visit.  Any assistance greatly appreciated.


Accepted Solutions
Solution
‎03-13-2014 12:03 PM
Super User
Posts: 17,724

Re: Retaining only first and last patient visit in dataset

First/Last processing should work for this.

data want;

set have;

by chartno;

if first.chartno or last.chartno;

run;

View solution in original post


All Replies
Solution
‎03-13-2014 12:03 PM
Super User
Posts: 17,724

Re: Retaining only first and last patient visit in dataset

First/Last processing should work for this.

data want;

set have;

by chartno;

if first.chartno or last.chartno;

run;

Frequent Learner
Posts: 1

Re: Retaining only first and last patient visit in dataset

Not sure if I'm missing the problem here. Sort by chartno and date, set with by statement and use first. and last. variables:

proc sort data = have;

   by chartno

      admdate

      ;

run;

data FirstAndLast;

   set have;

   by chartno

      admdate

      ;

   if    first.chartno

      or last.chartno

      ;

run;

Super User
Posts: 10,454

Re: Retaining only first and last patient visit in dataset

Or

Proc sql;

     create table want as

     select chartno, min( admdate) as FirstVisit format=yymmdd10., max(admdate) as LastVisit format=yymmdd10.

     from have

     group by chartno;

quit;

Regular Contributor
Posts: 152

Re: Retaining only first and last patient visit in dataset

Thank you so much for all the really great answers.  I chose Reeza's only because simple is best!  I knew when I posted it the answer would be simple but I could not get the correct syntax. Thanks again.

☑ This topic is SOLVED.

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

Discussion stats
  • 4 replies
  • 318 views
  • 0 likes
  • 4 in conversation