您好,在此先感谢您的回答和为帮助该论坛中的新用户所做的努力。
我有一个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。
答案 0 :(得分:1)
您的示例似乎可以与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;
答案 1 :(得分:0)
您还可以使用与proc sql不同的子句,它将基于所有列删除重复项
proc sql;
create table want
as
select distinct * from have;
quit;