全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
936 3
2013-10-12
sas是如何执行的呢?如果是先执行第一个set语句,然后执行第二个语句的话,x变量是被第二个set语句的覆盖了,但是问题是第二个set语句只有两个x呀,第一个set语句中的第三个x、Y值去哪里了呢?
data one;
input x y $;
cards;
1 groucho
3 harpo
5 kart
;
data two;
input x z$;
cards;
2 chico
4 zeppo
;
data three;
set one;
set two;
run;
proc print data=three;
run;

SAS 系统

Obsxyz
12grouchochico
24harpozeppo




二维码

扫码加我 拉你入群

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

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

全部回复
2013-10-12 19:04:36

RE: 帮忙解读下这段程序吧!

然后,为什么把set语句变成
set  one two;
之后输出结果就变成了

SAS 系统


Obs x y z
1 1 groucho   
2 3 harpo   
3 5 kart   
4 2   chico
5 4   zeppo

呢?
二维码

扫码加我 拉你入群

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

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

2013-10-12 19:16:29
set one; set two的时候,有两个数据指针,他们同步前进,有一个结束就整个结束了,数据量取两者中的最小的那个,如果有相同变量,后来的那个覆盖前面那个。在这里因为第二个数据集只有两个数据,所以整个数据集也只有两个,第一个数据集的第三条数据实际上并没有读取到。

set one two;只有一个数据指针,先读完数据one,接着再读数据two, 类似把两个数据集堆叠起来的效果。

二维码

扫码加我 拉你入群

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

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

2013-10-12 19:31:46
楼上讲的很对!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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