欢迎来到天天文库
浏览记录
ID:50617957
大小:288.32 KB
页数:11页
时间:2020-03-07
《SAS学习系列10. 合并数据集.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、10.合并数据集一、用SET语句拼接合并数据集用SET语句可以把两个数据集拼接合并在一起,适用于两个数据集具有相同的变量。基本形式为:data新数据集名;set旧数据集1旧数据集2;注:(1)按原来顺序合并成新数据集(数据集1在上,2在下);(2)若一个数据集包含了另一个数据集没有的变量,那么合并后,该变量下将会出现缺省值。例1路径“C:MyRawData”下有关于娱乐公园南北门游客的数据South.dat和North.dat,都包括变量Entrance、PassNumber、PartySize、Age,后者多了一列Lot(停车):先分别读入数据
2、存为数据集再合并成一个新数据集,并创建了新变量,AmountPaid.代码:datasouthentrance;infile'c:MyRawDataSouth.dat';inputEntrance$PassNumberPartySizeAge;procprintdata=southentrance;title'SouthEntranceData';run;datanorthentrance;infile'c:MyRawDataNorth.dat';inputEntrance$PassNumberPartySizeAgeLot;procprin
3、tdata=northentrance;title'NorthEntranceData';run;databothentrance;setsouthentrancenorthentrance;ifAge=.thenAmountPaid=.;elseifAge<3thenAmountPaid=0;elseifAge<65thenAmountPaid=35;elseAmountPaid=27;run;procprintdata=bothentrance;title'BothEntrances';run;运行结果:注意:南门数据中缺少Lot数据,堆叠合并后
4、的观测值为缺省值。一、用SET+BY语句排序拼接合并数据集前面是保持数据集原有顺序直接拼接合并,根据需要新数据集可以作排序处理。但这样效率较低,更好的方法是先排好序再合并。基本形式:data新数据集名;set旧数据集1旧数据集2;by变量1变量2…;注:旧数据集必须是事先排好序的。例2同样是例1的数据,对PassNumber做排序拼接合并,注意南门数据已经按PassNumber排序。代码:datasouthentrance;infile'c:MyRawDataSouth.dat';inputEntrance$PassNumberPartySize
5、Age;procprintdata=southentrance;title'SouthEntranceData';run;datanorthentrance;infile'c:MyRawDataNorth.dat';inputEntrance$PassNumberPartySizeAgeLot;procsortdata=northentrance;byPassNumber;procprintdata=northentrance;title'NorthEntranceData';run;datasortbothentrance;setnorthen
6、trancesouthentrance;byPassNumber;run;procprintdata=sortbothentrance;title'BothEntrances,ByPassNumber';run;运行结果:一、一对一匹配合并数据集经常会遇到合并两个数据集,它们有共同的变量(其不同取值都是各出现一次),用MERGE语句可以将两个数据集按共同变量进行一对一匹配合并。注意:要求两数据集事先已按共同变量排序。基本形式:DATAnew-data-set;MERGEdata-set-1data-set-2…;BYvariable-list;注:(
7、1)BY语句指定共同变量;(2)若两个数据集有重叠的变量(除了BY指定的共同变量),第2个数据集中的变量将覆盖第1个数据集中的相同变量。例3路径“C:MyRawData”下有关于某巧克力店的数据,chocsales.dat记录了所卖的巧克力代码、数量;chocolate.dat记录了巧克力代码、所代表的类型、描述:读入数据,按共同变量“巧克力代码”匹配合并数据集。代码:datadescriptions;infile'c:MyRawDatachocolate.dat'TRUNCOVER;inputCodeNum$1-4Name$6-14Desc
8、ription$15-60;run;datasales;infile'c:MyRawDatachocsa
此文档下载收益归作者所有