A SAS PRINT procedure output of the WORK.LEVELS data set is listed below:
Obs name level
1 Frank 1
2 Joan 2
3 Sui 2
4 Jose 3
5 Burt 4
6 Kelly .
7 Juan 1
The following SAS program is submitted:
data work.expertise;
set work.levels;
if level = . then
expertise = ‘Unknown’;
else if level = 1 then
expertise = ‘Low’;
else if level = 2 or 3 then
expertise = ‘Medium’;
else
expertise = ‘High’;
run;
Which of the following values does the variable EXPERTISE contain?
A. Low, Medium, and High only
B. Low, Medium, and Unknown only
C. Low, Medium, High, and Unknown only
D. Low, Medium, High, Unknown, and ‘ ‘ (missing character value)
else if level = 2 or 3
else if level = 2 or level = 3
make difference
The value of levels are in the set, { 1, 2, 3, 4 } , The IF statement of program, else if level = 2 or 3 then expertise = ‘Medium’; resolves as: else if (level =2) or (3) then expertise=’Medium’ ; . Notice that a value > 0 in the IF statement is always true. So any value which is not in the set { ., 1, 2, 3 } will result in the value of expertise assigned as ‘Medium’.
The correct statement to read this value would be else if level =2 or level = 3 then expertise=’Medium’ ;