954 4

求大神来看看这个do loops的execution的过程 [推广有奖]

  • 0关注
  • 6粉丝

博士生

11%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0.0606
学术水平
17 点
热心指数
28 点
信用等级
17 点
经验
116 点
帖子
124
精华
0
在线时间
357 小时
注册时间
2015-5-16
最后登录
2023-12-8

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
第一个code:
data one;
do i = 1 to 4;
output;
end;
run;

data two;
set one;
do c= 1 to 4;
do b= 1 to 4;
end;
end;
run;
第二个 code:

data two;
do i=1 to 4;
output;
do c= 1 to 4;
do b= 1 to 4;
end;
end;end;
run;


为何第一个程序的结果是
i c b
1 5 5
2 5 5
3 5 5
4 5 5


而第二个程序生成的dataset是
i  c b
1 . .
2 5 5
3 5 5
4 5 5
第一个observation的c和b是missing

有大神来解释下咩~
二维码

扫码加我 拉你入群

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

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

关键词:EXECUTION Loops loop ECU UTI execution 程序

好吧 找到个文献专门说explicit output 和 implicit output 的:

Once an explicit OUTPUT statement is used to write an observation to a dataset, there is no longer an implicit OUTPUT statement at the end of the DATA step.


使用道具

第二个code就是 第一次循环i=1 的时候 data vector是 1 . . 遇到output直接write into observations了 然后往下执行 c 5 b 5之后遇到output就是 2 5 5 ,3 5 5 ,4 5 5了

使用道具

板凳
舍身卫道 发表于 2015-5-22 19:41:58 |只看作者 |坛友微信交流群
output位置的问题,你程序改成这样就可以跟第一个结果一样了

data two;
do i=1 to 4;
do c= 1 to 4;
do b= 1 to 4;
end;
end;
output;
end;
run;

使用道具

舍身卫道 发表于 2015-5-22 19:41
output位置的问题,你程序改成这样就可以跟第一个结果一样了

data two;
恩 是的 之前对SAS explicit output和implicit output的理解不到位

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 15:11