全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3927 3
2016-02-03
初学sas,帮忙分析如下代码:
1:data a;                                                                                                                                          
2:do obsnum=1 to last by 3;   /*临时变量为last*/                                                                                                  
3:set ResDat.class point=obsnum nobs=last;
4:output;                                                                                                                                          
5:end;
6:stop;                                                                                                                                            
7:run;
我的理解:
每次按3步循环执行循环体,每次执行读取序号为obsnum观测。
我的问题是:
(1)第3条语句中nobs=last的作用是把class数据集中观测数据集总数赋给last?
(2)第2条语句的last是在第3条语句执行的时候赋值么?如果是这样第2条语句第一次执行是否先判断才执行?


二维码

扫码加我 拉你入群

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

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

全部回复
2016-2-3 09:21:49
这初学就直接看到指针了,好高级。。

(1)第3条语句中nobs=last的作用是把class数据集中观测数据集总数赋给last?


(2)第2条语句的last是在第3条语句执行的时候赋值么?如果是这样第2条语句第一次执行是否先判断才执行?
我理解的Do to和do until一样,先执行循环子赋初值并过一遍循环体;再去判断终止条件

我感觉这例子其实不好理解的是那个stop语句,你可以等高手来解释一下为啥在指针的后面要配合用个stop
二维码

扫码加我 拉你入群

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

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

2016-2-3 09:59:02
谢谢您的回答!
指针后面配合用stop的原因是:默认情况下第3条语句(set)一定要到ResDat.class的最后一条观测数据才能退出,而由于有第2条语句限制可能无法到最后一条观测数据,所以加上stop语句,避免出现死循环。
二维码

扫码加我 拉你入群

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

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

2016-2-3 11:48:24
这个STOP真是受教了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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