SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1420|回复: 2
打印 上一主题 下一主题

SAS Base 考题请教

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-8-24 22:18:14 | 只看该作者

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?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-9-5 13:40:26 | 只看该作者

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';

所以输出只有三种。

以上。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-9-7 11:59:00 | 只看该作者

Re: SAS Base 考题请教

谢谢指教 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 01:18 , Processed in 0.067398 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表