SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

if-then和else if-then的区别

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-3-5 11:41:01 | 只看该作者

if-then和else if-then的区别

data a;
input jobcode $;
datalines;
actor1
actor2
actor3
data b;
set a ;
if jobcode in ('actor1','actor2') then joblevel='beginner';
if jobcode='actor3' then joblevel='advanced';
else joblevel='unknow';
run;
那在这一段代码中,第二个条件判断如果改为else if  结果就会不一样,这是为什么呢?if和有else if
什么分别
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-3-5 13:19:53 | 只看该作者

Re: if-then和else if-then的区别

if 是完全判断逻辑,else if 是在前面If条件不满足情况下的进一步判断,所以在你这个case里
在第二个If判断时,对于'actor1','actor2,并不会考虑前面的判断结果,统一认为不是'actor3'而赋值'Unknown'.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-3-6 09:49:36 | 只看该作者

Re: if-then和else if-then的区别

分析的太到位了,我明白了。我看过下面的一个英文解释,但就不怎么看得懂,也把它写出来吧!最后谢谢您了!!!
The DATA step will continue to process those observations that satisfy the conditon in the first IF statement Althouth
jobcode might be set to beginner for one or more observations.the condition on the second IF statement will evaluate
as false,and the ELSE statement will execute and overwrite the value of jobcode as unknow.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-6 21:03 , Processed in 0.067481 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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