SAS进阶《深入解析SAS》之对多数据集的处理
1. 数据集的纵向串接:
数据集的纵向串接指的是,将两个或者多个数据集首尾相连,形成一个新的数据集。 据集的横向合并: 数据集的横向合并,指的是将两个或者多个数据集根据某种原则横向合并起来,形成新的数据集。
2. 数据集的纵向串接两种方法:1)使用SAS DATA步的SET语句。2)使用SAS过程步的APPEND过程。
2.1. 使用SET步纵向串接形式如下: DATA 新数据集; SET 数据集1 数据集2 <数据集3 数据集4 ...>; BY 变量1 <变量2 变量3 变量4...>; RUN; 使用APPEND过程 PROC APPEND BASE=主数据集 <DATA=追加数据集> <FORCE>; 2.2. 使用APPEND过程,SAS不会处理主数据集中的观测,而是直接将追加数据集的观测添加到主数据集最后一条观测后面,且变量仅包含主数据集中的变量。
3. 数据集的横向合并使用MERGE的两种情况:
不使用BY语句合并,也称为一对一合并。 DATA WORK.COMBINED; MERGE WORK.DATA1 WORK.DATA2; RUN; 一对一合并原则:1)新数据集的第一条观测包含各个输入数据集中第一条观测的信息,第二条观测包含各个数据集中第二条观测的信息,不足的观测用缺失值不足。2)新数据集含有的观测数为所有输入数据集的最大观测是数。 使用BY语句合并,也称为匹配合并。 DATA WORK.COMBINED; MERGE WORK.DATA1 WORK.DATA2; BY Year; RUN;
4. 使用数据集选项IN=操作观测
数据集选项IN=可以运用在SET、MERGE、MODIFY、UPDATE语句中的任何数据集后面。
5. 数据集的更新UPDATA
DATA 新数据集; UPDATA 主数据集 更新数据集 <UPDATATE=MISSINGCHECK | NOMISSINGCHCK>; BY 变量1 <变量2 变量3 变量4...>; RUN;
6. UPDATE语句和MERGE与的区别:
1)UPDATA语句只能操作两个数据集;MERGE语句可以对两个或者两个以上数据集进行操作。 2)使用UPDATA语句时必须使用BY语句;MERGE语句在不使用BY语句时也可以按观测号进行一对一合并。 2)在处理缺失值时,UPDATA语句可以控制是否用缺失值对主数据集进行替换;MERGE语句中后一数据集中的缺失值一定能会覆盖前一数据集中的值。 4)当BY变量值在后一数据集或者更新数据集中不唯一时,UPDATA语句和MERGE语句的处理方式不一样。
7. 数据集的更改
7.1 单个数据集的更改MODIFY语句 DATA 原数据集; MODIFY 原数据集; RUN; 7.2 两个数据集的更改MODIFY语句 DATA 主数据集; MODIFY 主数据集 修改数据集; BY 变量1 <变量2 变量3 ...>; RUN;
来源:https://www.cnblogs.com/lanzhi/p/6467868.html