首页 > 解决方案 > 关于在 SAS 中使用指定标准保持观察

问题描述

您好,非常感谢您在本论坛中为帮助新手用户所做的回答和努力。

我有一个带有变量的 sas 表:ID、年份、月份和创建日期。我想要的是,每月和每年以及创建日期只保留一个 ID。我的 HAVE 数据是:

ID  Year    Month   Date of creation
1   2019    1       a
1   2019    1       a
1   2019    1       b
1   2019    2       c
1   2019    3       d
1   2020    5       e
2   2019    1       a
2   2019    1       b
2   2019    3       c
3   2021    8       m
3   2021    9       k

我的 WANT 数据是

ID  Year    Month   Date of creation
1   2019    1       a
1   2019    1       b
1   2019    2       c
1   2019    3       d
1   2020    5       e
2   2019    1       a
2   2019    1       b
2   2019    3       c
3   2021    8       m
3   2021    9       k

我尝试了 nodup 密钥,但它删除了 ID。

标签: sas

解决方案


您的示例似乎适用于 PROC SORT 的 NODUPKEY 选项。也许您使用了错误的 BY 变量?

data have;
  input ID  Year    Month  Creation $ ;
cards;
1   2019    1       a
1   2019    1       a
1   2019    1       b
1   2019    2       c
1   2019    3       d
1   2020    5       e
2   2019    1       a
2   2019    1       b
2   2019    3       c
3   2021    8       m
3   2021    9       k
;
proc sort data=have out=want nodupkey;
  by id year month creation ;
run;

推荐阅读