DATA Step, Macro, Functions and more

Assign unique id

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 15
Accepted Solution

Assign unique id

Hi all,

 

I have a dataset in which I need to assign a unique id by two variables.

 

Below is what I have:

 

id      reg_seq

1       1

1       1

1       2

1       3

2       1

2       2

2       2

 

This is what I want:

id      reg_seq       seq

1       1                  1

1       1                  1

1       2                  2

1       3                  3

2       1                  4

2       2                  5

2       2                  5

 

Any advice?

Thanks!


Accepted Solutions
Solution
3 weeks ago
Super User
Posts: 6,753

Re: Assign unique id

Posted in reply to heretolearn

Assuming your data set is sorted so that the BY statement works:

 

data want;

set have;

by id reg_seq;

if first.reg_seq then seq + 1;

run;

View solution in original post


All Replies
Solution
3 weeks ago
Super User
Posts: 6,753

Re: Assign unique id

Posted in reply to heretolearn

Assuming your data set is sorted so that the BY statement works:

 

data want;

set have;

by id reg_seq;

if first.reg_seq then seq + 1;

run;

Occasional Contributor
Posts: 15

Re: Assign unique id

Posted in reply to Astounding

Thank you, both!

Contributor
Posts: 42

Re: Assign unique id

Posted in reply to heretolearn

Hi, heretolearn:

 

 

If you know First (or Last) By Variables & Retain Statement, you can get your objective submitting this code.

data test;
    input id reg_seq;
    datalines;
    1 1
    1 1
    1 2
    1 3
    2 1
    2 2
    2 2
    ;
run;
proc sort data=test out=test_1;
    by id reg_seq;
run;
data test_2;
    set test_1;
    retain seq;
    by id reg_seq;
    if first.reg_seq eq 1 then byflg=1;
    if _n_ eq 1 then seq=0;
    if byflg ne . then seq+byflg; 
run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 121 views
  • 3 likes
  • 3 in conversation