BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
NewUsrStat
Pyrite | Level 9

Hi guys, 

suppose to have the following: 

 

ID               Year         

 A              2018

 A              2018

 A              2020

 A              2020

 A              2021

 B              2020

 B              2020

.......           .............

 

Is there a way to get the following? 

 

ID               Year         

 A              2018

 B              2020

.......           .............

 

Meaning: if ID has more than one year like "A" then take the most ancient and take it one time; if ID has more records of the same year, then take the ID and the relative year one time. 

 

Thank you in advance

 

1 ACCEPTED SOLUTION

Accepted Solutions
antonbcristina
SAS Employee

You can achieve this with a simple DATA step.

 

You'll first need to sort the data by ID and YEAR.

proc sort data=have;
 	by id year;
run;

Then use a DATA step with a BY statement, keeping only the first occurence of each ID. Since the data is sorted by ID and YEAR, you'll automatically keep the earliest occurence of each ID.

 

data want;
	set have; 
	by id;
	if first.id;
run;	

View solution in original post

1 REPLY 1
antonbcristina
SAS Employee

You can achieve this with a simple DATA step.

 

You'll first need to sort the data by ID and YEAR.

proc sort data=have;
 	by id year;
run;

Then use a DATA step with a BY statement, keeping only the first occurence of each ID. Since the data is sorted by ID and YEAR, you'll automatically keep the earliest occurence of each ID.

 

data want;
	set have; 
	by id;
	if first.id;
run;	

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 474 views
  • 1 like
  • 2 in conversation