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 ??
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;
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;
or
data WANT;
set HAVE;
if upcase(DISASTER) =: 'HURRICANE ' then DISASTER = substr(DISASTER,11);
run;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.