BookmarkSubscribeRSS Feed
deleted_user
Not applicable
hi all,

if i have a dataset look something like this:

Name NRIC Weight Height
A XX XXX XXXX
B XX XXX XXXX
:
:
F XX XXX XXXX
G XX XXX XXXX

and i want to delete all the observation before Name = 'F', Does anyone knows how should I code it?
3 REPLIES 3
SushilNayak
Obsidian | Level 7
Hi Qiqi,
try making a counter which is set to some value say =0 and as soon as the name='F' is encountered change the value of the counter to say = 1. Use the output statement based on that counter.

data test;
input name:$4. data1:$char10. ;
cards;
A dummy
B dummy
C dummy
D dummy
E dummy
F dummy
G dummy
H dummy
;;;;
run;
data d1(drop=counter);
set test;
retain counter;
if _n_=1 then counter=0;
if name ='F' then counter=1;
if counter=1 or name='F';
run;
proc print;run;
Doc_Duke
Rhodochrosite | Level 12
If you are looking at logical order: in EGuide, you could create an advanced filter with
Name NOT LT "F"
to select the ones to keep.
Patrick
Opal | Level 21
Just to be careful: upcase(name) not lt "F"

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

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
  • 1359 views
  • 0 likes
  • 4 in conversation