Hi all,
I would like assign a sequential order for my data. I have id dose variables. like below
ID DOSE
1 20
1 20
1 17
1 17
1 15
1 15
I want like below
ID DOSE SEQ
1 20 0
1 20 0
1 17 1
1 17 1
1 15 2
1 15 2
Can you please help me with this.
Thanks,
Adi
One way:
data want;
set have;
by id dose notsorted;
if first.id then seq=0;
else if first.dose then seq + 1;
run;
I don't believe you. Prove me wrong by posting the log from your job where it doesn't work.
@chinna0369 wrote:
No, this is not working. Thanks!
Don't be silly.
data have;
input id dose;
datalines;
1 20
1 20
1 17
1 17
1 15
1 15
;
data want;
set have;
by id dose notsorted;
if first.id then seq=0;
else if first.dose then seq + 1;
run;
proc print data=want noobs;
run;
Result:
id dose seq 1 20 0 1 20 0 1 17 1 1 17 1 1 15 2 1 15 2
EXACTLY what you want.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.