全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2453 7
2012-03-05
悬赏 10 个论坛币 已解决
data b;
if _n_=1 then set a;
run;
目的:通过有条件的set将a中的第一条观察读入到b中。
疑问:数据集b中显示的是a中第一条观察,但是重复了两次,非常不理解,求高手从PDV角度解释一下
另外log显示结果附上:
NOTE: 由于循环,DATA STEP 停止。
NOTE: 从数据集 WORK.A. 读取了 1 个观测
NOTE: 数据集 WORK.B 有 2 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒



最佳答案

yunqingwang 查看完整内容

http://www2.sas.com/proceedings/sugi24/Posters/p235-24.pdf variables placed into the PDV from a SET statement are placed into a retained area
二维码

扫码加我 拉你入群

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

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

全部回复
2012-3-5 14:59:30
fisheryou 发表于 2012-3-5 16:52
to:yunqingwang
自己补充一下
如果你说的“set执行循环时不对变量初始化为缺失”这句话正确,那么就不难理 ...
http://www2.sas.com/proceedings/sugi24/Posters/p235-24.pdf
variables placed into the PDV from a SET statement are placed into a retained area
二维码

扫码加我 拉你入群

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

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

2012-3-5 16:40:44
是不是执行了两次,第一次执行后b数据集有一条观测了,第二次再复制了一次???猜的,没测试
二维码

扫码加我 拉你入群

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

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

2012-3-5 16:45:05
我觉得和set有关系,set执行循环时不对变量初始化为缺失
当_N_=1的时候很好理解
当_n_=2的时候if语句没执行,由于set,没有初始化为缺失,遇到run就output到b
data b;
if _n_=1 then do;set a ;d=1;end;
run;

二维码

扫码加我 拉你入群

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

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

2012-3-5 16:45:56
对于只有一个if,为什么还会执行下一个判断不是很清楚
二维码

扫码加我 拉你入群

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

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

2012-3-5 16:52:06
to:yunqingwang
自己补充一下
如果你说的“set执行循环时不对变量初始化为缺失”这句话正确,那么就不难理解了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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