楼主: fisheryou
2511 7

[问答] 从PDV角度解释一下(含条件的set) [推广有奖]

  • 1关注
  • 2粉丝

已卖:103份资源

副教授

9%

还不是VIP/贵宾

-

威望
0
论坛币
7591 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
42160 点
帖子
217
精华
0
在线时间
1209 小时
注册时间
2010-5-5
最后登录
2021-8-12

楼主
fisheryou 发表于 2012-3-5 14:59:29 |AI写论文
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
关键词:PDV Set Data step note Data 数据

沙发
yunqingwang 在职认证  发表于 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数据集有一条观测了,第二次再复制了一次???猜的,没测试

板凳
yunqingwang 在职认证  发表于 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;

报纸
yunqingwang 在职认证  发表于 2012-3-5 16:45:56
对于只有一个if,为什么还会执行下一个判断不是很清楚

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

7
yunqingwang 在职认证  发表于 2012-3-5 16:55:26
data a;
x=2;
run;
data b;
y=1;z=2;output;
y=2;z=3;output;
data c;
if _n_=1 then set a;
set b;
run;

8
fisheryou 发表于 2012-3-5 17:15:13
yunqingwang 发表于 2012-3-5 16:55
data a;
x=2;
run;
嘿嘿,money已到账,感谢你的回复

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

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