I would like to assign group id for same values,
like showed below, if I have code_name, how to get group id number?
code_name group_id_number
aa 1
aa 1
aa 1
bb 2
cc 3
cc 3
dd 4
ee 5
ff 6
gg 7
gg 7
. .
. .
. .
Although a retain statement is not needed when you use the s_id + 1 syntax, I like to use it for initializing:
data test;
set test2 (keep = codename);
by codename;
retain s_id 0;
if first.codename then s_id + 1;
run;
Edit: fixed a typo in the by statement (wrong underline)
Here is my code:
data test;
set test2 (keep = codename);
by code_name;
s_id = _n_ = 0;
if first.codename then s_id + 1;
run;
proc print data = test (obs = 100);
var codename s_id;
run;
And the out are something like this:
It only assign "1" to the very first codename and the duplicates will just have 0 assigned
aa 1
aa 0
aa 0
bb 1
cc 1
cc 0
dd 1
ee 1
ff 1
gg 1
gg 0
. .
. .
. .
Although a retain statement is not needed when you use the s_id + 1 syntax, I like to use it for initializing:
data test;
set test2 (keep = codename);
by codename;
retain s_id 0;
if first.codename then s_id + 1;
run;
Edit: fixed a typo in the by statement (wrong underline)
Thanks!!
It worked perfectly!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.