Hi,
I have claims dataset that I need to calculate duration of continuous medication use for 90 days.
My dataset looks like this:
Pat_ID fill_date Medication day supply
1 01/01/2017 A 15
1 02/01/2017 B 20
1 03/01/2017 A 30
1 04/01/2017 A 30
1 05/01/2017 A 30
I am not sure if it is possible to achieve a result looking like this
Pat Id Medication day supply continuous day use
1 A 15 15
1 B 20 20
1 A 30 90
1 A 30 90
1 A 30 90
Thanks much
Not directly with the info provided. I would first assign a intake number, then you can simply group and sum and merge back on, something like (and not tested as i don't type test data in):
data have;
set have;
by pat_id;
if first.pat_id then do;
start_date=fill_date;
end_date=fill_date;
continuous=day_supply;
end;
else if medication ne lag(medication) or fill_date ne lag(fill_date)+1 then do;
output;
start_date=fill_date;
end_date=fill_date;
continuous=day_supply;
end;
else do;
end_date=fill_date;
continuous=sum(continuous,day_supply);
end;
run;
Basically keep a count of start_date and end_date and sum(day_intake) for each group, and output one record at the end of the group - note you need start and end to be able to merge sum() back to the data.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.