多数据集处理(三):数据集的纵向串接 -- APPEND过程

SAS中文论坛 2021-04-05 16:54:23

上一篇文章介绍了SET语句的应用。今天,我们将介绍APPEND过程及与SET语句的比较。

APPEND过程

使用APPEND过程进行数据集串接的基本形式为:

其中:

  • 主数据集表示需要增加观测的数据集。该主数据集可以是已经存在的数据集,也可以是不存在的数据集。当主数据集不存在时,在执行完APPEND过程后,将生成主数据集,并将追加数据集的观测复制到主数据集中。

  • 追加数据集中包含了需要被添加到主数据集中的观测。这个语句可以是默认的,此时,SAS会将当前数据集的观测添加到主数据集的后面。当前数据集指的是SAS系统最近一次生成的数据集。通常情况下,为了程序的可读性,不建议默认。

  • FORCE选项会强制将追加数据集中的观测添加到主数据集中。后面将会介绍需要使用FORCE选项的三种情景及其结果。

使用APPEND过程进行串接时,SAS不会处理主数据集中的观测,而是直接将追加数据集的观测添加到主数据集最后一条观测的后面,且变量仅包含主数据集中的变量。

例4.6:运用APPEND过程将work.New_Employee_Dept和 work.Old_employee_Gen两个数据集进行纵向串接,并将串接后的数据集保存在work.Old_employee_Gen中(前面在介绍SET语句的时候,已经介绍并操作过这两个数据集)。

两个数据集的基本情况如图4.6所示。

图4.6 例4.6中使用的数据集部分内容

两个数据集所含的变量不全一致,需要使用FORCE语句来进行串接,代码如下:

串接后的work.Old_Employee_Gen如图4.7所示。

图4.7 例4.6输出数据集部分内容

      从上面的例子可以观察到串接后work.Old_Employee_Gen中仅包含原来含有的变量,观测数为两个数据集中的观测之和。这里使用了FORCE选项,如果去掉FORCE选项,串接将失败,这是因为追加数据集work.New_employee_dept中含有主数据集没有的变量。

使用APPEND过程时特别需要注意FORCE选项的使用,下面介绍需要使用FORCE选项的三种情景,以及使用FORCE选项后的结果。

  • 第一种情况,如果追加的数据集中存在不包含在主数据集中的变量,使用FORCE选项将会使得串接成功,但仅存在于追加数据集中的变量不会被添加到主数据集。

  • 第二种情况,如果同名变量在主数据集和追加数据集中的类型不一样,那么需使用FORCE选项,但是追加进主数据集的观测对应的这个变量的值为缺失。

  • 第三种情况,如果同名变量在追加数据集中的长度大于主数据集中的长度,那么需使用FORCE选项,在执行过程中,追加数据集中的变量值可能会被截断。

当主数据集中包含追加数据集中不含有的变量时,串接成功,同时系统会在日志中生成警告,并且追加数据集中不含有的变量之值都为缺失。另外,当两个数据集中同名变量的属性不一致时,将沿用主数据集中变量的属性。

在企业交易系统数据的维护过程中可以使用APPEND过程,例如主数据集可以表示历年的交易记录,追加数据集可以表示每年新增的交易记录,使用APPEND过程可以将每年新增的销售记录方便快速地串接到历年的销售记录中。

注意

在使用APPEND过程时,一定要注意观察日志信息,避免产生数据缺失、截断等异常结果


SET语句与APPEND过程的比较

对两个数据集进行纵向串接时,如果两个数据集中的变量名称和属性都相同,使用SET语句和APPEND过程,可以得到完全一样的结果。但是使用APPEND过程的效率比SET语句高,尤其是当主数据集的观测量很大时,这是因为APPEND过程不对主数据集的观测进行操作,而是直接把追加数据集的观测加到主数据集的后面。

当输入数据集的个数、所包含的变量或者变量属性不一致时,两种方法有较大差别,如表4.1所示。

表4.1 SET语句和APPEND过程比较


本文结束,下一篇文章开始介绍“数据集的横向合并”。

回复【数据和代码】可以下载《深入解析SAS》一书的数据和代码。

查询往期文章,请回复下列关键字:

安全】==>【SAS智能平台安全管理】系列文章

Base基础】==>【Base SAS基础】系列文章

编程概念】==>【SAS编程基本概念】系列文章

描述性统计】==>【SAS统计分析系列:描述性统计分析】系列文章

读外部数据】==>【读取外部数据到SAS数据集】系列文章

假设检验】==>【参数估计与假设检验】系列文章

单数据集处理】==>【单数据集处理】系列文章

方差分析】==>【方差分析】系列文章

小贴士


读者可以从以下链接获取SAS公司提供的免费版环境:


SAS大学版(SAS® University Edition)是SAS为在校大学生免费提供的基于虚拟机和网页的SAS环境。回复关键字【大学版】,可以查看详细介绍。

下载路径:

https://www.sas.com/en_us/software/university-edition/download-software.html


SAS学术版(SAS® OnDemand for Academics)是 SAS 为学术届人士免费提供的、在线的、基于SAS 私有云上的应用服务环境。

用户首先需要注册,然后按照提示信息就可登录。

注册路径:

http://odamid.oda.sas.com


本文转自《深入解析SAS — 数据处理、分析优化与商业应用 》

作者:夏坤庄、徐唯、潘红莲、林建伟


如若转载本文,请在文章顶部标注 “本文转自SAS知识 (ID: SASAdvisor),摘自《深入解析SAS — 数据处理、分析优化与商业应用 》”



作者介绍

夏坤庄

《深入解析SAS — 数据处理、分析优化与商业应用》第一作者, SAS软件研究开发(北京)有限公司客户职能部总监。在承担研发工作的同时,夏及其团队负责对SAS非英语市场提供技术支持,并且与在美国及其它地区的团队一起,服务于SAS的SaaS/RaaS业务,同时提供和验证关于SAS产品和技术在应用领域的最佳实践。在加入SAS软件研究开发(北京)有限公司之前,夏就职于SAS中国公司,历任资深咨询顾问、项目经理、首席顾问、咨询经理,拥有丰富的咨询和项目实施经验。在长期的从业经历中,不但为SAS的金融行业客户成功实施了众多深受好评的项目,而且在近年领导实施了非金融行业的多个大数据分析项目。


SAS知识    微信:SASAdvisor     长按二维码关注

欢迎大家投稿,一起分享SAS的点滴

投稿邮箱:  sasadvisor@outlook.com


Copyright © 北京伴娘礼服价格联盟@2017