楼主: chaos407
2712 6

[原创博文] SAS初学者请教一个do循环的问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
172 点
帖子
16
精华
0
在线时间
11 小时
注册时间
2009-11-3
最后登录
2024-10-24

楼主
chaos407 发表于 2011-12-6 15:20:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
刚开始学习朱世武老师的《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就停止了吗?请教一下,谢谢
二维码

扫码加我 拉你入群

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

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

关键词:do循环 初学者 SAS编程技术教程 Harrell Richard 编程技术 status 初学者 start

沙发
deng203 发表于 2011-12-6 15:27:48
start列最后的年数是1991,year列要加1

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

板凳
SASRETURN 发表于 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.

报纸
chaos407 发表于 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 ...
明白了,谢谢

地板
zhijuanwei0818 发表于 2011-12-9 07:20:21
楼上真理

7
chendonghui1987 发表于 2012-3-3 21:18:22
顶楼主,我也需要

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-24 09:23