Jelloul Ayoub
Jelloul Ayoub

Reputation: 1

About keeping observation with specified criteria in SAS

Hello and many thanks in advance for your answers and efforts to help newby users in this forum.

i have a sas table with the variables : ID, Year, Month, and Creation date. What i desire is, per month and year and Creation date to keep only one ID. My HAVE data is :

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

My WANT data is

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

I tried nodup key but it removes ID's.

Upvotes: 0

Views: 48

Answers (2)

Rhythm
Rhythm

Reputation: 682

You can also use distinct clause from proc sql, it will remove duplicates based on all columns

proc sql;
create table want 
as
select distinct * from have;
quit;

Upvotes: 0

Tom
Tom

Reputation: 51621

Your example seems to work fine with NODUPKEY option of PROC SORT. Perhaps you used the wrong BY variables?

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;

Upvotes: 1

Related Questions