首页 理论教育 用merge语句横向拼接SAS数据集

用merge语句横向拼接SAS数据集

时间:2023-08-10 理论教育 版权反馈
【摘要】:如果有多个SAS数据集需要横向拼接,也就是说数据体横向拼接,变量也横向拼接,那么可以用merge语句完成该任务。表4-10部门1销量数据表4-11部门2销量数据表4-12部门3销量数据解先建立3个数据集:sales11,sales12,sales13,分别表示3个部门的产品销量;用month表示月份。练习题利用例4.10中的数据集sales11和sales12建立SAS数据集saleall,它是这两个数据集的横向合并。

用merge语句横向拼接SAS数据集

如果有多个SAS数据集需要横向拼接,也就是说数据体横向拼接,变量也横向拼接,那么可以用merge语句完成该任务。必须注意,要横向拼接SAS数据集,必须在拼接前做到:所有数据集的数据行都按某个变量排成升序形式;否则,就应当使用proc sort过程,按某个by变量将各个数据集的数据行排成升序形式,并在拼接数据集的数据步中用by语句说明该变量是by变量,所有变量数据行按by变量对齐(见例4.9)。merge语句的一般形式是:

例4.9 设某公司3个部门统计该公司前3月所销售5种产品的销量x,y,z,u,v如表4-7至表4-9所示,要求将它们合并成公司的产品总销量表(部门1和部门2统计的y产品的销量重复统计)。

表4-7 部门1统计的销量数据(仅有x,y的数据)

表4-8 部门2统计的销量数据(仅有y,z的数据)

表4-9 部门3统计的销量数据(仅有u、v的数据)

解 先建立3个数据集:sales1,sales2,sales3,分别表示3个部门统计的1—3月的销量。因为按月份从先到后排序比较实用,所以取month为by变量。前两张表中它的值不是从小到大,需要排序。横向合并这3个数据集所用的程序如下所示:

得到的结果是:

这就是公司的产品总销量表。

注意:如果各个数据集中by变量取值不一致,那么合并后的数据集中by变量取值的集合是各数据集中by变量取值的并集,对应的其他变量的观测值可能缺省(见后文例4.10)。(www.xing528.com)

例4.10 假如公司3个部门的产品销量如表4-10至表4-12所示,求公司产品销量总表。

表4-10 部门1销量数据

表4-11 部门2销量数据

表4-12 部门3销量数据

解 先建立3个数据集:sales11,sales12,sales13,分别表示3个部门的产品销量;用month表示月份。sales11中有1—4月的销量,数据集sales12中有1—3月和5月的销量,数据集sales13中有1—3月的销量,那么合并后的数据集中有1—5月的销量,有些月份某些商品的销量可能缺省。横向合并这3个数据集所用的程序如下所示:

得到的输出是:

这就是公司产品销量总表。

练习题 利用例4.10中的数据集sales11和sales12建立SAS数据集saleall,它是这两个数据集的横向合并。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈