Medication intensification

Reply
Occasional Contributor
Posts: 12

Medication intensification

Hi all-

I have the following dataset:

patient ID    drug class  quarter 1 quarter2 quarter3...
1                    4               0              1            1

1                    3               1               0            0

1                    7               0              0             0

1                    1               0              0             0

The quarters continue over 36 quarters and 0/1 under the quarter columns indicate use of that drug during that quarter.

I'm trying to determine the best way possible to note medication additions? This is a very large dataset (n=~900,000 pts) and I'm applying a rule to the addition- the drug has to show up for a consecutive 2 quarters for the person to be considered a "user"

Do I need to re-structure the data?

Any help would be greatly appreciated- thanks much!

Respected Advisor
Posts: 4,651

Re: Medication intensification

To get the list of first additions, you can use an array, this way:

data have;

input patientID    drugClass  quarter1-quarter6;

datalines;

1 4 0 1 1 0 1 1

1 3 1 0 0 1 1 0

1 7 0 0 0 0 1 0

1 1 0 0 0 0 0 0

;

data firstAdditions(keep=patientID drugClass addq);

set have;

array q{*} quarter:;

do addQ = 1 to dim(q)-1;

       if q{addQ} and q{addQ+1} then do;

            output;

            leave;

            end;

       end;

run;


proc print data=firstAdditions noobs; run;

PG

PG
Respected Advisor
Posts: 3,124

Re: Medication intensification

Another way to identify is to convert them into strings:

data want;

set have;

array qtr quarter:;

if find(cats(of qtr(*)),'11');

run;

Haikuo

Ask a Question
Discussion stats
  • 2 replies
  • 157 views
  • 1 like
  • 3 in conversation