DATA Step, Macro, Functions and more

how to count multiple records to mark this obs as "multiple visit"

Accepted Solution Solved
Reply
Super Contributor
Posts: 345
Accepted Solution

how to count multiple records to mark this obs as "multiple visit"

proc sort data=have nodupkey;

by id date;

run;

data want;

set have;

by id date;

if first.id then index=1; else index=2;

run;

proc freq data=want;

tables cat1*cat2;

where index=1;

run;

I prevoiusly used index=2 to mark if those obs have multiple records (visits). But this has limitation, only the later visits are counted. This time I need to mark, if the patient has mulitple visit (might see doctors same day many times), whether it is the first visit, or the later visit, I want to create a variable that the patient has "multiple visit"

 

That means, if index=2, all the patient's records will mark as "multipe visit"

Any idea how to do? Thanks.


Accepted Solutions
Solution
‎08-04-2016 05:27 PM
Super User
Posts: 5,511

Re: how to count multiple records to mark this obs as "multiple visit"

Assuming that your PROC SORT is doing the correct thing by removing multiple visits for the same patient on the same date ...

 

Try creating INDEX this way:

 

if first.id and last.id then index='Just one';

else index='Multiple';

 

Then adjust the WHERE statement to select whichever patients you would like.

View solution in original post


All Replies
Solution
‎08-04-2016 05:27 PM
Super User
Posts: 5,511

Re: how to count multiple records to mark this obs as "multiple visit"

Assuming that your PROC SORT is doing the correct thing by removing multiple visits for the same patient on the same date ...

 

Try creating INDEX this way:

 

if first.id and last.id then index='Just one';

else index='Multiple';

 

Then adjust the WHERE statement to select whichever patients you would like.

☑ This topic is solved.

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

Discussion stats
  • 1 reply
  • 201 views
  • 0 likes
  • 2 in conversation