DATA Step, Macro, Functions and more

How do I keep the first observation conditioned upon 2 variables?

Reply
Occasional Contributor
Posts: 11

How do I keep the first observation conditioned upon 2 variables?

[ Edited ]

Hi, 

 

I have pharmacy claims data.  I would like to keep the first record for each patient and each drug based on fill date. My data look like this: 

 

Patid Drug Fill_date

 

 Normally, if I was interested in only 1 drug, i would only keep those records, and then  I would sort by patid and fill_date, then do something like this: 

 

proc sort data=have; by patid drug fill_date; run;

data want; 

data have;

by patid

if first.patid=1;

run;

 

But since I need the first patid AND drug, that will not work.  How would this be done if I sorted by patid, drug, and fill_date?

 

Thanks!
Chris

 

Super User
Posts: 19,850

Re: How do I keep the first observation conditioned upon 2 variables?

You want each each new instance of drug in this case, so change your FIRST to be relative to the drug variable.

 

if first.drug;

Make sure your BY statement has at least both variables.

 

 

Occasional Contributor
Posts: 11

Re: How do I keep the first observation conditioned upon 2 variables?

Sorry, I need the first of the drug for each unique patient ID.  Does your method still work with that requirement? 

 

Thanks!
Chris

 

Super User
Posts: 19,850

Re: How do I keep the first observation conditioned upon 2 variables?

Try it and let me know.

Ask a Question
Discussion stats
  • 3 replies
  • 191 views
  • 0 likes
  • 2 in conversation