【问题标题】:Create Row Number Column by Two Columns SAS通过两列 SAS 创建行号列
【发布时间】:2018-05-13 14:18:37
【问题描述】:

我想根据两列的值将行号列添加到 SAS 数据集中。

Type_1 和 Type_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       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_1type_2 并且上面的代码可以工作,但我希望能够在不制作帮助列的情况下做到这一点。有什么方法可以更改数据步骤以使其正常工作?或者是否有另一个我不知道的 SAS 函数可以完成这个?

【问题讨论】:

    标签: sas


    【解决方案1】:

    如果您想在 TYPE_1 或 TYPE_2 发生任何变化时重置它,则只需使用列表中的最后一个变量;早期变量的任何更改都会触发 FIRST 变量的更改。

    data work.want;
      set work.have;
      by type_1 type_2 notsorted;
      rownumber + 1;
      if first.type_2 then rownumber=1;
    run;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 2019-05-12
      相关资源
      最近更新 更多