全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1167 4
2015-05-22
第一个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

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

扫码加我 拉你入群

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

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

全部回复
2015-5-22 14:10:45
好吧 找到个文献专门说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.


二维码

扫码加我 拉你入群

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

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

2015-5-22 14:19:43
第二个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 21:32:36
舍身卫道 发表于 2015-5-22 19:41
output位置的问题,你程序改成这样就可以跟第一个结果一样了

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

扫码加我 拉你入群

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

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

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

说点什么

分享

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