SAS系统和数据分析拼接和合并数据集.doc

SAS系统和数据分析拼接和合并数据集.doc

ID:61035719

大小:236.00 KB

页数:9页

时间:2021-01-20

SAS系统和数据分析拼接和合并数据集.doc_第1页
SAS系统和数据分析拼接和合并数据集.doc_第2页
SAS系统和数据分析拼接和合并数据集.doc_第3页
SAS系统和数据分析拼接和合并数据集.doc_第4页
SAS系统和数据分析拼接和合并数据集.doc_第5页
资源描述:

《SAS系统和数据分析拼接和合并数据集.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第十二课拼接和合并数据集数据集的连接是把两个或两个以上的数据集的观测连接成一个新的数据集。连接的方式有两种:拼接和合并。在SAS数据步中用SET语句可以拼接数据集,而用MERGE语句可以合并数据集。例如,我们有两个数据集A和B,要拼接和合并成新的数据集C,两种不同方法的程序和结果见示意图12.1所示。图12.1数据集的两种连接方式:拼接和合并一、数据集的拼接数据集的拼接可分成三种主要的拼接情况:1.相同变量的数据集拼接这是最简单的情况,在这种情况下,新生成的数据集就含有这些相同的变量,观测的数目是所有这些

2、数据集的观测总和。例如,数据集A和B都含有两个相同的变量COMMOM和X,且都有三条观测,如图12.2所示。图12.2含有相同的变量COMMOM和X的两个数据集用下面程序生成新数据集C有两个相同的变量COMMOM和X,6条观测。DataA;Inputcommonx;Cards;980119802298033DataB;Inputcommonx;Cards;980149802598036DataC;SetAB;Procprintdata=C;Run;拼接生成的新数据集C的结果如图12.3所示。图12.3相同

3、变量的数据集拼接结果1.不相同变量的数据集拼接如果两个数据集A和B含有的变量不完全相同,如上例中数据集B含有的不是COMMON和X变量而是COMMON和Y变量,如图12.4所示。用SET语句拼接A和B数据集后,新生成的数据集C就含有三个变量COMMON、X和Y,观测的数目仍然是所有这些数据集的观测总和,但原数据集中没有的变量在拼接后新数据集中为缺失值。图12.4含有不相同的变量X和Y的两个数据集生成新数据集C的程序如下:DataC;SetAB;Procprintdata=C;Run;拼接生成的新数据集C的

4、结果如图12.5所示。图12.5不相同变量的数据集拼接结果2.按关键字排序后拼接数据集如果要求新生成的数据集C按共同的关键字例如COMMON排序观测,那么预先要数据集A和B也已按COMMON关键字排序好,可通过排序过程PROCSORT和BY指明关键字。生成新数据集C的程序如下:Procsortdata=A;ByCommon;Procsortdata=B;ByCommon;DataC;SetAB;ByCommon;Procprintdata=C;Run;拼接生成的新数据集C的结果如图12.6所示。图12.6

5、按关键字排序后拼接的数据集结果无论哪一种拼接形式,用SET语句拼接生成的新数据集的观测总数为原各输入数据集观测数之和。一、数据集的合并数据集的合并是通过使用MERGE语句把两个或两个以上数据集中的两条观测或两条以上的观测合并为新生数据集中的一条观测。数据集的合并可分成两种主要的合并情况:l一对一合并(不带BY语句)l匹配合并(带有BY语句)1.一对一合并(不带BY语句)把一个数据集中的第一条观测同另外一个数据集中第一条观测合并,第二条观测同另外一个数据集中第二条观测合并,以此类推。新生成的数据集中的观测总

6、数为这些数据集中观测个数的最大值。如果相对应的某个数据集已没有观测,则相应的变量值为缺省值。如果在几个数据集中有共同的变量,则在合并后新生成的数据集中只有一个变量,其值为列在MERGE语句中最后一个含有该变量的数据集中的观测值。例如,我们有两个数据集A和B,如图12.7所示。图12.7含有不相同的变量和相同变量不同值的两个数据集生成新数据集C的程序如下:DataC;MergeAB;Procprintdata=C;Run;合并的新数据集C的结果如图12.8所示。图12.8一对一合并(不带BY语句)后的结果1

7、.匹配合并(带有BY语句)如果想把两个或两个以上的数据集按照相同的关键字值合并,则在MERGE语句后面要用BY跟关键字语句。且每一个数据集必须预先按关键字排序好。如果两个数据集中观测的关键字值不匹配,输出所有这些观测,相应的新增变量的值为缺省值。如果两个数据集中观测的关键字值是多对多匹配,要注意新生成的数据集中相同关键字值的观测数为各数据集中这个关键字值的观测数的最大值,相同关键字值的观测按顺序一对一合并,无论哪一个数据集中这个相同关键字值的观测没有了,都取这个相同关键字值的最后一条观测继续合并。例如,我

8、们有一个订单数据集ORDERS和一个产品数据集PRODUCTS,如图12.9所示。图12.9订单数据集ORDERS和产品数据集PRODUCTS要合并生成一个新的订单销售数据集SALES的程序如下:Procsortdata=ORDERS;ByP_ID;Procsortdata=PRODUCTS;ByP_ID;DataSALES;MergeORDERSPRODUCTS;ByP_ID;Procprintdata=SALES;Run;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。