I need to create a block variable to keep a tab on changing doses.
subject dose
10002 10MG
10002 10MG
10002 20MG
10002 10MG
10002 10MG
10004 10MG
10004 10MG
10004 10MG
10004 20MG
10004 20MG
I want the final dataset to look like as follows.
subject dose block
10002 10MG 1
10002 10MG 1
10002 20MG 2
10002 10MG 3
10002 10MG 3
10004 10MG 1
10004 10MG 1
10004 10MG 1
10004 20MG 2
10004 20MG 2
any thoughts?
BY groups + FIRST, this assumes your data is sorted as shown.
data want;
set have;
by subject dose notsorted;
if first.subject then block=0;
if first.dose then block+1;
run;
@gp123 wrote:
I need to create a block variable to keep a tab on changing doses.
subject dose
10002 10MG
10002 10MG
10002 20MG
10002 10MG
10002 10MG
10004 10MG
10004 10MG
10004 10MG
10004 20MG
10004 20MG
I want the final dataset to look like as follows.
subject dose block
10002 10MG 1
10002 10MG 1
10002 20MG 2
10002 10MG 3
10002 10MG 3
10004 10MG 1
10004 10MG 1
10004 10MG 1
10004 20MG 2
10004 20MG 2
any thoughts?
BY groups + FIRST, this assumes your data is sorted as shown.
data want;
set have;
by subject dose notsorted;
if first.subject then block=0;
if first.dose then block+1;
run;
@gp123 wrote:
I need to create a block variable to keep a tab on changing doses.
subject dose
10002 10MG
10002 10MG
10002 20MG
10002 10MG
10002 10MG
10004 10MG
10004 10MG
10004 10MG
10004 20MG
10004 20MG
I want the final dataset to look like as follows.
subject dose block
10002 10MG 1
10002 10MG 1
10002 20MG 2
10002 10MG 3
10002 10MG 3
10004 10MG 1
10004 10MG 1
10004 10MG 1
10004 20MG 2
10004 20MG 2
any thoughts?
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
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.