DATA Step, Macro, Functions and more

Retaining only last patient visit data

Accepted Solution Solved
Reply
Super Contributor
Posts: 312
Accepted Solution

Retaining only last patient visit data

I have data as below:

ID visit measure Measure_Type
1 1 12 A
2 1 13 A
2 2 14 A
3 1 15 A
1 1 12 B
2 1 13 B
2 2 14 B
3 1 15 B
1 1 12 C
2 1 13 C
2 2 14 C
3 1 15 C

 

The ID 2 has two visits, and I only want to select the second visit and delete the first visit. I tried with the following code but it does not work:

data want;
set have;
by measure_type descending visit id;
if first.id;
run;

any hints? Thanks


Accepted Solutions
Solution
‎09-22-2016 04:29 PM
Super User
Posts: 10,466

Re: Retaining only last patient visit data

First you would have to sort the data the same as the By statement you use.

But Since there are different values of visit then you wouldn't want the visit in the sort order then you may want to to use

 

by Measure_type id notsorted;

Then you would want to us IF LAST.ID.  If there is only one then the First and Last are the same record.

View solution in original post


All Replies
Solution
‎09-22-2016 04:29 PM
Super User
Posts: 10,466

Re: Retaining only last patient visit data

First you would have to sort the data the same as the By statement you use.

But Since there are different values of visit then you wouldn't want the visit in the sort order then you may want to to use

 

by Measure_type id notsorted;

Then you would want to us IF LAST.ID.  If there is only one then the First and Last are the same record.

Super User
Posts: 5,072

Re: Retaining only last patient visit data

I think you're looking in the right forest ... here's a variation.  First, sort if the data are not already in this order:

 

proc sort data=have;

by measure_type id visit;

run;

 

Then select the last visit for a given measure_type / id combination:

 

data want;

set have;

by measure_type id visit;

if last.id;

run;

Super Contributor
Posts: 312

Re: Retaining only last patient visit data

Thank you, both of you. Both worked. 

 

☑ This topic is SOLVED.

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

Discussion stats
  • 3 replies
  • 273 views
  • 0 likes
  • 3 in conversation