SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
lillymaginta
Lapis Lazuli | Level 10

id date

1 01/01/2005

2 01/02/2006

3 01/01/2007

 

I want to delete any observation after 10/01/2006

 

output

 

id date

1 01/01/2005

2 01/02/2006

1 ACCEPTED SOLUTION

Accepted Solutions
ShiroAmada
Lapis Lazuli | Level 10
data want;
  set have;if date gt '01Oct2006'd then delete;
run;

View solution in original post

3 REPLIES 3
ShiroAmada
Lapis Lazuli | Level 10
data want;
  set have;if date gt '01Oct2006'd then delete;
run;
ClarkLawson
Obsidian | Level 7

Hello,

 

There are a few different options:

 

Using Delete

 

data output;
set input;

if date>'10Jan2006'd then delete;

run;

 

Using IF

data output;
set input;

if date<='10Jan2006'd then output; ** (Then output) is optional;

run;

 

Using Where

data output;
set input;
where date<='10Jan2006'd;
run;

Using Where Not

 

data output;
set input;
where not (date<='10Jan2006'd);
run;

 

Using SQL Delete

proc sql;
delete from dataset
where date>'10Jan2006'd
;
quit;
lillymaginta
Lapis Lazuli | Level 10

Thank you! 

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 12420 views
  • 2 likes
  • 3 in conversation