BookmarkSubscribeRSS Feed
ha33
Obsidian | Level 7

Hi everyone,

 

I have some individual-level prescription redemption data and I would like to calculate the point prevalence of drug use, defined as the percentage of the population being treated at monthly intervals one year before and after to the initiation of an intervention (intervention starts at different time points for each individual, but every individual has 1 year-follow-up in both directions). 

 

My current data looks something like this: 

Table 1

id

drug_atc

date_of_redemption

grace_period

days_supply

last_day_of_supply

intervention_date

cov_by_last

intervention

1

AA10A

23/12/2020

30

30

21/02/2021

01/02/2021

-

0

1

AA10A

31/01/2021

30

30

01/04/2021

01/02/2021

1

0

1

AA10A

04/02/2021

30

30

05/04/2021

01/02/2021

1

1

1

AA10A

07/03/2021

30

30

06/05/2021

01/02/2021

1

1

1

AA10A

15/05/2021

30

30

14/07/2021

01/02/2021

0

1

2

AA10A

02/04/2021

30

60

01/07/2021

01/06/2021

-

0

2

AA10A

05/08/2021

30

60

03/11/2021

01/06/2021

0

1

2

AA10A

06/09/2021

30

30

05/11/2021

01/06/2021

1

1

 

Last_day_of_supply is the days_supply + grace_period.

Cov_by_last denotes if the prescription was filled before the last_day_of_supply of the previous prescription (yes=1, no=0). 

Intervention denotes if the prescription was filled before (0) or after (1) the intervention. 

 

I also have a shell table with each id, the date of intervention and date of the monthly intervals since intervention: 

 

Table 2

ID

drug_atc

month_since_int

intervention_date

intervention

date_since_inv 

1

AA10A

-12

01/02/2021

0

01/02/2020

1

AA10A

-11

01/02/2021

0

01/03/2020

1

AA10A

-10

01/02/2021

0

01/04/2020

1

AA10A

-9

01/02/2021

0

01/05/2020

1

AA10A

-8

01/02/2021

0

01/06/2020

1

AA10A

-7

01/02/2021

0

01/07/2020

1

AA10A

-6

01/02/2021

0

01/08/2020

1

AA10A

-5

01/02/2021

0

01/09/2020

1

AA10A

-4

01/02/2021

0

01/10/2020

1

AA10A

-3

01/02/2021

0

01/11/2020

1

AA10A

-2

01/02/2021

0

01/12/2020

1

AA10A

-1

01/02/2021

0

01/01/2021

1

AA10A

0

01/02/2021

1

01/02/2021

1

AA10A

1

01/02/2021

1

01/03/2021

1

AA10A

2

01/02/2021

1

01/04/2021

1

AA10A

3

01/02/2021

1

01/05/2021

1

AA10A

4

01/02/2021

1

01/06/2021

1

AA10A

5

01/02/2021

1

01/07/2021

1

AA10A

6

01/02/2021

1

01/08/2021

1

AA10A

7

01/02/2021

1

01/09/2021

1

AA10A

8

01/02/2021

1

01/10/2021

1

AA10A

9

01/02/2021

1

01/11/2021

1

AA10A

10

01/02/2021

1

01/12/2021

1

AA10A

11

01/02/2021

1

01/01/2022

1

AA10A

12

01/02/2021

1

01/02/2022

2

AA10A

-12

01/06/2021

0

01/06/2020

2

AA10A

-11

01/06/2021

0

01/07/2020

2

AA10A

-10

01/06/2021

0

01/08/2020

 

I would like to create a table like this,

 

 

table 3

ID drug_atc month_since_int in_treatment intervention
1 AA10A -12 1 0
1 AA10A -11 1 0
1 AA10A -10 1 0
1 AA10A -9 1 0
1 AA10A -8 1 0
1 AA10A -7 1 0
1 AA10A -6 1 0
1 AA10A -5 1 0
1 AA10A -4 1 0
1 AA10A -3 1 0
1 AA10A -2 1 0
1 AA10A -1 1 0
1 AA10A 0 1 1
1 AA10A 1 1 1
1 AA10A 2 1 1
1 AA10A 3 0 1
1 AA10A 4 1 1
1 AA10A 5 0 1
1 AA10A 6 1 1
1 AA10A 7 0 1
1 AA10A 8 1 1
1 AA10A 9 0 1
1 AA10A 10 1 1
1 AA10A 11 0 1
1 AA10A 12 0 1
2 AA10A -12 1 0
2 AA10A -11 1 0
2 AA10A -10 0 0

 

where in_treatment denotes whether the individual was covered by a days_supply of the drug on the day of the start of the month_since_int.

 

Eventually, the final table should look something like this, which contains the percentage of individuals in treatment at each month in relation to the intervention. 

 

 

month_since_int

drug_atc

in_treat_percent

-12

AA10A

70.0%

-11

AA10A

60.0%

-10

AA10A

80.0%

-9

AA10A

70.0%

-8

AA10A

60.0%

-7

AA10A

60.0%

-6

AA10A

70.0%

-5

AA10A

70.0%

-4

AA10A

60.0%

-3

AA10A

80.0%

-2

AA10A

60.0%

-1

AA10A

70.0%

0

AA10A

60.0%

1

AA10A

60.0%

2

AA10A

50.0%

3

AA10A

40.0%

4

AA10A

50.0%

5

AA10A

30.0%

6

AA10A

30.0%

7

AA10A

20.0%

8

AA10A

20.0%

9

AA10A

30.0%

10

AA10A

20.0%

 

 

The key step I am struggling with is creating table 3, but I happy to receive input to any of the steps, it does not have to be the total solution.

 

Thanks

 

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 0 replies
  • 850 views
  • 0 likes
  • 1 in conversation