Sas 分组计数顺序

Sas 分组计数顺序,sas,Sas,假设我有一个数据集,如下所示: ID Cat 101 G 101 G 101 F 101 G 102 F 102 F 102 G 102 F 102 F 我想按组变量ID Cat(未排序)为序列创建一个变量 计数可以是这样的 data X1; set have; by ID, cat notsorted; if first.cat then count=1; else count+1;run; ID Cat count 101 G 1 101 G 2 101 F 1

假设我有一个数据集,如下所示:

ID  Cat 
101 G
101 G
101 F
101 G
102 F
102 F
102 G
102 F
102 F
我想按组变量ID Cat(未排序)为序列创建一个变量

计数可以是这样的

data X1; set have; by ID, cat notsorted;
if first.cat then count=1; else count+1;run;


ID  Cat count
101 G    1
101 G    2
101 F    1
101 G    1
102 F    1
102 F    2
102 G    1
102 F    1
102 F    1
然而,我要找的是

ID  Cat Seq
101 G    1
101 G    1
101 F    2
101 G    3
102 F    1
102 F    1
102 G    2
102 F    3
102 F    3
你可以用

seq+first.cat;
因此,每次启动一个新的CAT值时,SEQ将增加1

要为每个ID添加重置,请执行以下操作:

if first.id then seq=1;