全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1502 4
2016-01-19
LIBNAME demolib "c:\temp\demolib";

PROC SQL;
CREATE TABLE demolib.fifteenups AS
SELECT name AS FName, sex, age, height, weight
FROM sashelp.class
WHERE age GE 15
;
QUIT;

DATA demolib.fifteenups;
fname = "Adam" ;
sex = "M" ;
age = 15 ;
height = 68 ;
weight = 130 ;
OUTPUT;
fname = "Joan" ;
sex = "F" ;
age = 16 ;
height = 64 ;
weight = 120 ;
OUTPUT;
STOP;
MODIFY demolib.fifteenups;
RUN;

rt,这是Proc SQL by example这本书上的代码,我想问下倒数第三行的STOP的目的是什么? 为什么不加STOP就会出错?求大神解释

二维码

扫码加我 拉你入群

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

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

全部回复
2016-1-19 12:48:52
The STOP statement causes SAS to stop processing the current DATA step immediately and resume processing statements after the end of the current DATA step.

如果不加stop,2个新观测会无限次的追加进去。
二维码

扫码加我 拉你入群

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

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

2016-1-19 14:14:23
孤单的我们 发表于 2016-1-19 12:48
The STOP statement causes SAS to stop processing the current DATA step immediately and resume proces ...
但是datalines不用加STOP; 也不会无限次地追加下去。
二维码

扫码加我 拉你入群

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

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

2016-1-19 14:38:58
andymm 发表于 2016-1-19 14:14
但是datalines不用加STOP; 也不会无限次地追加下去。
测试了一下:
_N_=1,fname = "Adam" ;sex = "M" ;age = 15 ;height = 68 ;weight = 130 ;output;
_N_=1,fname = "Joan" ;sex = "F" ;age = 16 ;height = 64 ;weight = 120 ;;output;
(这里_N_=1 而并非2,你可以测试下)
modify语句追加进去之后,没有终止data step,而是跳回
_N_=2,fname = "Adam" ;sex = "M" ;age = 15 ;height = 68 ;weight = 130 ;
_N_=2,fname = "Joan" ;sex = "F" ;age = 16 ;height = 64 ;weight = 120 ;
如此循环往复,乐此不疲。
所以需要一个stop来打断它。
二维码

扫码加我 拉你入群

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

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

2016-1-19 14:48:13
孤单的我们 发表于 2016-1-19 14:38
测试了一下:
_N_=1,fname = "Adam" ;sex = "M" ;age = 15 ;height = 68 ;weight = 130 ;output;
_N_=1, ...
好的,十分感谢
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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