Identify commonly named variables - Multiple solutions
Monday, March 31, 2008
Jared in SAS

I love how there is always more than 1 way to solve a problem in SAS.  Here is a perfect example (replicated below).
If var starts with ("Mc" "Mac") then …

*Here’s our data and solution 1;*

data test; infile cards missover; input @1 var $30.; if var in:(’Mc’,'Mac’) then mix = 1; if upcase(var) in:(’MC’,'MAC’) then upcase = 1;
cards;
McTarnihan
Mc Ewan
Lagunator
Grolsch
Tooth Sheaf
Tadcaster
Anderson
Hop Rod Rye
Mac Beth
mackinaw
mac Donalds
;;;;
run;

*Solution 2;

data test2;
set test END=eof;
retain rx;
if _n_=1 then rx=rxparse(”` (mac|mc) [’ ‘]$c*$w*”);

match=rxmatch(rx,var);
if(match>0) then
put “Got a match, ” var= match=;
else
put “Not a match, ” var= match=;
if eof then call rxfree(rx);
run;

*Solution 3;

Data test3;
set test;
if index(var,’Mc’) = 1 or index(var,’Mac’) = 1 then match = 1;
run;

Article originally appeared on jaredprins (http://jaredprins.squarespace.com/).
See website for complete article licensing information.