Sas 按组分配ID号

Sas 按组分配ID号,sas,Sas,如何基于两个变量分配ID编号,A和B。如果代码可以处理多个变量,这将非常有用。 以下是我的数据: A B ID 5000136 5 1 5000136 5 1 5000225 4 2 5000225 4 2 5000225 4 2 5000225 6 3 5000225 6 3 5000225 6 3 5000327 2 4 5000327 2 4 .... ID是我想要产生的结果。 提前感谢,如果此问题重复,我很抱歉。如果您不想先使用。[var]处理此方法也可以使用 data

如何基于两个变量分配
ID
编号,
A
B
。如果代码可以处理多个变量,这将非常有用。 以下是我的数据:

A       B  ID
5000136 5 1
5000136 5 1
5000225 4 2
5000225 4 2
5000225 4 2
5000225 6 3
5000225 6 3
5000225 6 3
5000327 2 4
5000327 2 4
....
ID
是我想要产生的结果。
提前感谢,如果此问题重复,我很抱歉。

如果您不想先使用。[var]处理此方法也可以使用

data want;
set have;
by A B;
if first.B then id+1;
run;
data test;
infile cards;
input a b;
retain id 0;
id = ifn(lag(b) ne b, id+1, id);
datalines;
5000136 5 
5000136 5 
5000225 4 
5000225 4 
5000225 4 
5000225 6 
5000225 6 
5000225 6 
5000327 2 
5000327 2 
;
run;

proc print; 
run;

如果不希望先使用[var]处理,也可以使用此方法

data test;
infile cards;
input a b;
retain id 0;
id = ifn(lag(b) ne b, id+1, id);
datalines;
5000136 5 
5000136 5 
5000225 4 
5000225 4 
5000225 4 
5000225 6 
5000225 6 
5000225 6 
5000327 2 
5000327 2 
;
run;

proc print; 
run;