- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8. LEAVE 语句 LEAVE 语句停止当前DO组循环或SELECT组的处理过程,并继续执行DO组或SELECT组后面的语句。 ? 语句格式: LEAVE; 例,给定条件下停止DO循环的处理过程 根据工龄发红包,每年50元,500元封顶。试计算以下人员到1991年时每人可得的红包金额。 姓名 入职年份 张三 1990 欧阳 1976 吴珂 1991 李李 1981 例中,首先由IF语句检查BONUS的值,当BONUS的值超过允许的最大值500时,用LEAVE语句来停止DO循环的处理过程 data a; input name $ start; bonus=0; drop i; do i=start to 1991; if bonus ge 500 then leave; bonus+50; end; cards; 张三 1990 欧阳 1976 吴珂 1991 李李 1981 ; Run; proc print; run; 1. 条件IF语句 语句格式: IF expression THEN statement; [ ELSE statement; ] 执行多条语句,使用DO程序块 IF expression THEN DO; statements; END; [ ELSE statement; ] 二、IF语句 if status=‘OK’ and type=3 then count+1; if year=1984 then color=‘blue’; else color=‘red’; if grp=“A” then do; x=1; y=10; end; Else do; x=2; y=100; end; 2. 子集if语句 作用:选择满足条件的观测 语句格式 if expression; data pop; input name $ sex $ age; cards; Tom M 78 John M 56 Rose F 67 ; data sen; set pop; if age=65; run; 上例中,数据集sen中仅包括pop中age大于等于65的观测。 三、SELECT语句 SELECT语句选择执行SAS语句。 语句格式 SELECTselect-expression; WHEN (when-expression-1,…when-expression-n) statement; …WHEN(when-expression-1,…when-expression-n) statement; OTHERWISE statement; END; 选项说明: 例,有SELECT表达式的SELECT语句 data a; set b; obs=_n_; x=uniform(0); select (obs); when (1) x=x*10; when (2,4,6); when (3,5,7,13) x=x*100; otherwise x=1; end; run; 根据OBS来计算新变量X的值。当OBS为1时,执行x=x*10。当OBS为2,4,6时,X值不变。当OBS为3,5,7,13时,执行X=X*100。OBS为其它值时,执行x=1。 有select表达式时,when表达式中只需表达式的值 例,没有SELECT表达式的SELECT语句 没有select表达式时,when表达式中需指定操作变量 data _null_; do mon=jan,feb,mar,apr,may,jun,jul,aug,sep; select; when (mon in (jun,jul,aug)) put summer mon=; when (mon in (mar,apr,may)) put spring mon=; otherwise put fall or winter mon=; end; end; run; 例,正确及错误用法举例 select(x); when (x=2) put two; /*错误用法*/ end; select(x); whe
文档评论(0)