全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1013 2
2016-07-11
发现一个很有趣的问题,
程序(1):
data a;
x=1;
output;
x=2;
output;
x=3;
output;
if x=2 then y=0;
run;

程序(2):
data a;
x=1;
output;
x=2;
output;
x=3;
output;
run;

data a2;
set a;
if x=2 then y=0;
run;
程序(1)中的if...then....不起作用,只会产生一个全为空的y变量,而程序(2)中的if....then....就会产生一个y为0的观测. 貌似如果在同一个data步中的output这个statement后面加的code都不起作用,只有另开一个data步才会起作用。百度也度不出结果,请教各位牛牛,有谁知道这个可以怎么解释吗?

二维码

扫码加我 拉你入群

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

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

全部回复
2016-7-11 21:50:01
是这样的..因为你这个程序并没有循环..顺序往下读..也就是说他从_n_=4的地方在找x=2的情况.
然而set语句并没有你想的那么简单.其实是又一个循环在里面.sas每读一条记录都会把整个程序完整运行一遍.所以有用
二维码

扫码加我 拉你入群

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

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

2016-7-14 16:06:15
多谢forwings的回复.
原来是这样啊,知道SAS怎么执行程序真重要,请问在哪里可以查到详细的SAS怎么读取记录的介绍?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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