- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章面向多个数据集的加工.
第6章 面向多个数据集的加工
6.1 数据集的合并
6.1.1 串行合并(纵向合并)
1. 将含有相同变量集合的/* Proqram _6-1-l.sas */
DATA ex060101;
INPUT(v1- v2)($);
DATALINES;
A001 B160
A002 B161
;
RUN;
DATA ex060102;
INPUT(v1-v2)($);
DATALINES;
A003 B162
A004 B163
A005 B164
;DATA ex060103;
SET ex060101 ex060102;
PUT _ALL_;
RUN;
Log窗口显示:
v1=A001 v2=B160 _ERROR_=0 _N_=1
v1=A002 v2=B161 _ERROR_=0 _N_=2
v1=A003 v2=B162 _ERROR_=0 _N_=3
v1=A004 v2=B163 _ERROR_=0 _N_=4
v1=A005 v2=B164 _ERROR_=0 _N_=5
NOTE: There were 2 observations read from the data set WORK.EX060101.
NOTE: There were 3 observations read from the data set WORK.EX060102.
NOTE: The data set WORK.EX060103 has 5 observations and 2 variables.
法2:
Data ex060103;
If last=0 then do;
Set ex060101 end=last;
put _all_;
Return;
End;
Input (v1-v2) ($);
Datalines;
A003 B162
A004 B163
A005 B164
;
Run;
Log窗口显示:
last=0 v1=A001 v2=B160 _ERROR_=0 _N_=1
last=1 v1=A002 v2=B161 _ERROR_=0 _N_=2
last=1 v1=A003 v2=B162 _ERROR_=0 _N_=3
last=1 v1=A004 v2=B163 _ERROR_=0 _N_=4
last=1 v1=A005 v2=B164 _ERROR_=0 _N_=5
[说明] ①END=是SET语句的选择项,跟在它后面的LAST是任选的1个SAS变量名, 它的值一开始被置为0,直到SET语句读完输入数据集(1个或多个)的最后1个观测时, 其值为1。变量LAST不包含在新创建的数据集中。②SAS从数据集中读入1个观测并重新输入后,本来应该顺序执行下面的INPUT语句,但它执行完语句后又遇到一个RETURN语句,RETURN语句的作用就是让SAS重新回到DATA步的开始,于是重新判断LAST是否为0,由于中还有观测,LAST为0,故又读入中一个观测并输出,遇到RETURN语句又返回,直到读完中所有观测,LAST为1,才跳到IN语句, 读入数据。APPEND过程将某一SAS数据文件的数据加到另外一个SAS数据文件的后面。
语法:
PROC APPEND BASE=数据文件 DATA=数据文件 ;/* Program_2-8-1_append.sas */
proc append base= ex060101 data= ex060102;
run;
proc print data=ex060101;
run;行1:BASE为主文件,要将DATA后指定的数据文件添加进来。使用APPEND时两个SAS数据文件的架构必须相同,否则无法添加成功
2. 串行合并时若合并的数据文件有不同的变量,则新的数据文件将是所有数据文件的变量的集合。
语法:SET 数据集l 数据集2 … ;/* Program_6.1.2.Sas */DATA ex060104;
INPUT(v1-v3)($);
DATALINES;
A001 B160 TPE
A002 B161 HKG
A003 B162 MNL
A004 B163 LAX
A005 B164 NYC
A006 B165 SIN
;
RUN;
DATA ex060105;
INPUT(v1-v2)($) V4;
DATALINES;
A003 B160 361
A002 B161 260
A003 B162 402
A004 B163 298
A005 B164 280
A006 B165 271
;
DATA ex060106;
SET ex060104 ex060105;
文档评论(0)