全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2628 6
2011-12-06
刚开始学习朱世武老师的《SAS编程技术教程》,遇到一个问题:
代码:
data week;
input name $ idno start status $ dept $;
bonus=0;
do year=start to 1991;
if bonus ge 500 then leave;
bonus+50;
end;
cards;
Jones 9011 1990 PT PUB
Thomas 876 1976 PT HR
Barnes 7899 1991 ft tech
Harrell 1250 1975 ft hr
Richards 1002 1990 ft dev
Kelly 85 1981 pt pub
Stone 091 1990 pt mait
;
run;
运行结果中的第一行:
name    idno     start    status    dept    bonus   year
Jones    9011   1990   PT          PUB    100       1992
为什么year会等于1992呢,不是到1991就停止了吗?请教一下,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-12-6 15:27:48
start列最后的年数是1991,year列要加1
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-6 15:40:35
deng203 发表于 2011-12-6 15:27
start列最后的年数是1991,year列要加1
为什么year列要加1呢,发现如果在end前加一个output,year就是到1991就停止了,这是什么原因啊,谢谢~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-6 18:27:41
LEAVE Statement: Stops processing the current loop and resumes with the next statement in the sequence.  
When year=1991 and bonus not ge 500 then  current loop not end.

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-8 23:50:41
SASRETURN 发表于 2011-12-6 18:27
LEAVE Statement: Stops processing the current loop and resumes with the next statement in the sequen ...
明白了,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-12-9 07:20:21
楼上真理
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群