Write and run SAS programs in your web browser

IF statements with wildcard characters

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

IF statements with wildcard characters

Hi there,

 

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;

data work.cars;
set work.cars;
if displ=>0 and City_MPG=>30 and model^="*hydrid*" then Eff='Yes';
if Model='%Hybrid%' then Eff='Hyb';
run;

 

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.


Thanks!


Accepted Solutions
Solution
‎02-27-2016 07:04 PM
Super Contributor
Posts: 490

Re: IF statements with wildcard characters

use index function for that

if index(LOWCASE(model),'hybrid') then ....

View solution in original post


All Replies
Solution
‎02-27-2016 07:04 PM
Super Contributor
Posts: 490

Re: IF statements with wildcard characters

use index function for that

if index(LOWCASE(model),'hybrid') then ....
Trusted Advisor
Posts: 1,114

Re: IF statements with wildcard characters

[ Edited ]

Hi @wy2sl0,

 

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"?)

New Contributor
Posts: 2

Re: IF statements with wildcard characters

[ Edited ]

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!

 

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 1211 views
  • 2 likes
  • 3 in conversation