data work.expertise; INPUT ID Name $ Level; if level = . then expertise = 'Unknown'; else if level = 1 then expertise = 'Low'; else if level = 2 or 3 then expertise = 'Medium'; else expertise = 'High'; DATALINES; 1 Frank 1 2 Joan 2 3 Sui 2 4 Jose 3 5 Burt 4 6 Kelly . 7 Juan 1 ; run;
I see what the problem is right away. else if level = 2 or 3 then expertise = 'Medium'; It should be level=2 OR level=3.
What I don't understand is the code produces this output? Any explanation would be nice. Thanks.
@mcypert16 May I ask where these questions are coming from?
Yes. They are from a website called BI exam academy. I understand the question now. The else if level=2 or 3 is always true because 3 is nonmissing and not 0. So the code never gets past line 3.
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.