通过两列SAS创建行号列
我想根据两列的值向SAS数据集添加一个行号列 类型_1和类型_2列是我拥有的,行号是我需要的通过两列SAS创建行号列,sas,Sas,我想根据两列的值向SAS数据集添加一个行号列 类型_1和类型_2列是我拥有的,行号是我需要的 Type_1 Type_2 Row Number A 1 1 A 1 2 A 2 1 A 2 2 B 1 1 B 2 1 B 2 2 B 3 1 C 1 1 C 1
Type_1 Type_2 Row Number
A 1 1
A 1 2
A 2 1
A 2 2
B 1 1
B 2 1
B 2 2
B 3 1
C 1 1
C 1 2
C 2 1
C 3 1
C 4 1
C 4 2
我有以下代码来计算一列值上的行数:
data work.want;
set work.have;
rownumber + 1;
by type_1 notsorted;
if first.type_1 then rownumber=1;
run;
但我不知道如何将其扩展到能够根据多个列标准进行分组。我知道我可以将
type_1
和type_2
连接起来,上面的代码可以工作,但我希望能够做到这一点,而无需创建一个helper列。有没有办法更改数据步骤以使其正常工作?或者是否有我不知道的另一个SAS函数可以实现这一点?如果要在类型1或类型2发生任何更改时重置它,则只需使用列表中的最后一个变量;先前变量的任何更改都将触发第一个变量的更改
data work.want;
set work.have;
by type_1 type_2 notsorted;
rownumber + 1;
if first.type_2 then rownumber=1;
run;