全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1476 5
2017-04-26
如下代码,执行数据集合并
复制代码
运行结果如下:
复制代码
我的理解应该是如下结果:
复制代码
请问我的理解对么?

二维码

扫码加我 拉你入群

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

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

全部回复
2017-4-26 07:16:01
兄弟,你用错命令了,按照你所期望的应该调用的是merge而不是交织的set。
把最后数据集a改成下面格式试试:
data a;
merge xyz uvw;
by id;
proc print noobs;
run;

二维码

扫码加我 拉你入群

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

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

2017-4-26 15:39:11
这个是两个连续的set语句的问题,我通过查朱世武老师的“SAS编程技术教程”第二版的76页,里面有一个类似的例子(书中的例子没有by id部分),我的理解就是已第二个set语句中观测数为准,并把第一个set数据集中存在但第二个数据集没有的变量添加。但我不明白这条语句的具体应用场景。
二维码

扫码加我 拉你入群

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

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

2017-4-26 20:37:15
你的理解有误,用两个连续的set语句在SAS里叫一对一输入(One-to-one reading)。它的特点是按顺序连读多个数据集,并且新数据集观测数以最小源数据集为准。
所以对于你的例子,数据集只会读四行就停,因为这就是最小源数据集的观测数。至于by id排序不必写是因为两个源数据集录入时本来就已经按
字母排序了。

你想要的输出结果只有用合并语句才管用。
二维码

扫码加我 拉你入群

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

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

2017-4-27 21:36:14
foocares 发表于 2017-4-26 20:37
你的理解有误,用两个连续的set语句在SAS里叫一对一输入(One-to-one reading)。它的特点是按顺序连读多个数 ...
谢谢!
二维码

扫码加我 拉你入群

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

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

2017-5-2 06:53:51
加深理解,谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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