SAS中文论坛

标题: SAS Base 考题请教 [打印本页]

作者: shiyiming    时间: 2008-8-24 22:18
标题: SAS Base 考题请教
SAS Base中有一题不明,请教各位高手:
A sas print procedure output of dataset A is listed below:
Obs Name Level
1     L         1
2     F         2
3    J          2
4    Y          3
5    W         4
6    P          .
7    Q          1
the following program is submitted
data B;
set A;
if level='.' then expertise='unknown';
else if level=1 then expertise='low';
else if level=2 or 3 then expertise='middle';
else expertise='high';
run;

Q: which values does the variable expertise contain?
作者: shiyiming    时间: 2008-9-5 13:40
标题: Re: SAS Base 考题请教
这一道题唯一可以迷惑人的地方就是第二个else if.

其实else if level = 2 or 3在实际执行中是永真的,相当于 else if 3 or level =2
如果要写level为2或者3应该用in语句。

所以段程序判断部分等同为
if level='.' then expertise='unknown';
else if level=1 then expertise='low';
else expertise='middle';

所以输出只有三种。

以上。
作者: shiyiming    时间: 2008-9-7 11:59
标题: Re: SAS Base 考题请教
谢谢指教 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2