BookmarkSubscribeRSS Feed
Q1983
Lapis Lazuli | Level 10

data test(keep=Disaster);

set test1;

run;

 

Sample Output

Disaster

Hurricane Harvey
Hurricane Beula
Hurricane Agnes 
Wildfires

 

If the variable begins with Hurricane  I want to delete it and just show the word after the blank space.  I looked at compress, trim, strip functions however no examples.  How can I accomplish this ??     

3 REPLIES 3
novinosrin
Tourmaline | Level 20

data have;
input disaster $20.;
datalines;
Hurricane Harvey
Hurricane Beula
Hurricane Agnes
Wildfires
;

data want;
set have;
if scan(disaster,1)='Hurricane' then _disaster=scan(disaster,2);
else _disaster=disaster;
run;

 

or with IFC function:

data want;
set have;
/*if scan(disaster,1)='Hurricane' then _disaster=scan(disaster,2);*/
/*else _disaster=disaster;*/
_disaster=ifc(scan(disaster,1)='Hurricane' , scan(disaster,2), disaster);
run;

Astounding
PROC Star

I guess hurricanes usually receive one-word names.  Just in case there is more than one word following "Hurricane" this might be a little safer:

 

data want;
set have;
if upcase(scan(disaster,1))='HURRICANE' then _disaster=substr(disaster,11);
else _disaster=disaster;
run;

ChrisNZ
Tourmaline | Level 20

or

data WANT;
  set HAVE;
  if upcase(DISASTER) =: 'HURRICANE ' then DISASTER = substr(DISASTER,11);
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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