02-27-2016 05:05 PM
Sorry I am just starting out using SAS. I have been doing some basic data manipulation and cannot seem to find a how-to on using the wildcard function with IF statements.
Here is what I wrote;
if displ=>0 and City_MPG=>30 and model^="*hydrid*" then Eff='Yes';
if Model='%Hybrid%' then Eff='Hyb';
I am simply trying to weed out any vehicle models that have Hybrid (non-case sensitive if possible) in their name from my Eff(icient) column. What have I done incorrectly? It isn't giving me errors, but the Hybrid vehicles are not changing to "Hyb", they are just saying "Yes" from my previous IF statement.
02-27-2016 06:20 PM - edited 02-27-2016 06:29 PM
In string comparisons in the DATA step those "wildcard" characters have no special meaning. They are treated as ordinary characters.
The LIKE condition in PROC SQL, however, uses the percent sign and the underscore (not the asterisk) as wildcard characters. But I haven't seen or used this very often, because there are other tools available, e.g. character functions such as the INDEX function suggested by mohamed_zaki.
In any case you should avoid typos such as "hydrid" when coding string comparisons. (Or did you really mean "hydrid"?)
02-27-2016 06:33 PM - edited 02-27-2016 07:04 PM
Total mistake! I am going to try the advice given after dinner thanks you two.
EDIT: It worked perfectly! Thanks so much! This is a very important IF statement I will need to use. Appreciate it!
Need further help from the community? Please ask a new question.