creating a loop for clinical trials

Occasional Contributor
Posts: 15

creating a loop for clinical trials

I am working on a clinical trial with 2310 subjects where I have to randomize treatments. The randomization consists of one factor(fac) "Age" where the categories are "1" if >18 and" 2" if 6 to <18 and "3" if <6. The treatments are A, B,C. The initial enrollment for each subject is defined as Xjk where K is the treatment(A, B, C) and j is the age factor(1,2,3). So you would have XjA, XjB and Xjc possibilities for each subject. The initial data looks like this:

Subject   Fac   X      Treatment

1             2       XjA       A

2             1       XjB       B

3             2       XjC       C

4             3       XjA       A

........

2310       1      XjC       A

I need to design a variable(Mjk) that's going to count the updated allocation if a new subject with a different j value is going to come in, for example M11 would be where age factor=1(j) and treatment=1(k) for the particular subject, M12 would be age factor=1 and treatment=2 for that subject, so I need to check within each subject and I am not sure how to do that. I am very new to SAS so I don't know how to design this in loops, I initially did an if/else statement but this was not accounting for each new subject. The initial code is shown below:

data m12;
set data;
if fac1="1" then do;
if X="XjB" and t="2" then M="M12";

data m13;
set data;
if fac1="1" then do;
if X="Xjc" and t="3" then m="m13";
end;
run;

Any help at all would be greatly appreciated! Thank you.

PROC Star
Posts: 2,370

Re: creating a loop for clinical trials

What's the output you expect for the example you provided?

Occasional Contributor
Posts: 15

Re: creating a loop for clinical trials

Hi, I am sorry here is an updated question:

The variable Mjk is going to look at the X variable and the fac variable for each subject and update the allocation based on each subject.

So the data set should look like this:

Subject   Fac   X      Treatment  M

1             2       XjA       A            M2A

2             1       XjB       B           M1B

3             2       XjC       C           M2C

4             3       XjA       A            M3A

........

2310       1      XjC       A             M1A

PROC Star
Posts: 2,370

Re: creating a loop for clinical trials

Like this?

M = catt('M', FAC, TREATMENT);

Occasional Contributor
Posts: 15

Re: creating a loop for clinical trials

[ Edited ]

Yes but how would I check for the "fac" of each subject within the data set? The variable M should update after each subject.

PROC Star
Posts: 2,370

Re: creating a loop for clinical trials

The data step executes for each observation. This works:

``````data m12;
set data;
M = catt('M', FAC, TREATMENT);
run;``````
Occasional Contributor
Posts: 15

Re: creating a loop for clinical trials

Okay, thank you I will try it.
Discussion stats
• 6 replies
• 95 views
• 1 like
• 2 in conversation