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.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.