数据的合并
将不同的数据内容合并到一个数据集就是数据合并。
纵向合并
SAS中用SET语句进行纵向合并,语法格式为:
DATA 数据集;
SET 数据集1(数据集选项) 数据集2(数据集选项) …… ;
RUN;
*SET语句的作用是将若干个数据依次纵向连接,并存放到DATA语句建立的数据集中。
如果SET语句后面只有一个数据集,相当于复制作用
纵向合并方法1
SET 数据集1 (IN=临时变量) 数据集2 (IN=临时变量2)……;
纵向合并方法2
当合并的两个数据集中同一个变量名称不同时,需要更改变量名统一名称合并;
SET 数据集1(RENAME=(原名1=新名1)) 数据集2(RENAME=(原名1=新名1))……;
横向合并
SAS中用MERGE语句进行横向合并,语法格式为:
DATA 数据集;
MERGE 数据集1 数据集2……;
BY 变量名1 变量名2……;
RUN;
*MERGE的作用是将若干个数据集依次向右连接,并存放到一个新数据集中。
BY 语句相当于指定索引,按索引变量匹配。
数据集排序
SAS中用于排序的方法是调用PROC SORT过程,语法格式为:
PROC SORT DATA = 要排序的原始数据集 OUT = 排序好的数据集;
BY 变量名称;
RUN;
该过程将指定的原始数据集按照BY中的列名进行排序,并将排序好的数据存入新数据集中。
*默认升序排列。
若要进行降序排列,可用“BY DESCENDING 变量名称”实现。
数据对比
SAS中对比两个数据集的命令是PROC COMPARE,语法格式为:
PROC COMPARE < NOSUMMARY> ;
BY 变量1 变量2……;
RUN;
PROC COMPARE 语句调用数据比较过程,选项BASE和COMPARE分别指定两个比较和被比较的数据集。
NOSUMMARY 的作用是不显示概括性的结果。
TRANSPOSE 的作用是按记录显示不一致的结果;如果不指定改选项,默认的是按变量显示不一致的结果。
BY 语句相当于指定索引,按索引变量匹配。
ID 语句通常指定索引变量。
数据查重
SAS中用PROC SORT来进行重复数据查找,语法格式为:
PROC SORT ;
BY 变量1 变量2 ……;
RUN;
NOUNIQUEKEY 的作用是留下数据集中具有重复的记录,去除不重复的记录。
(指的是BY 后面所跟变量的重复)。
NODUKKEY 的作用是删除重复的BY后面的变量记录,对于重复的数据按先后顺序只保留最前面的一条记录。
数据筛选
变量筛选
SAS中用KEEP 和 DROP来实现变量的筛选。语法格式为:
KEEP 变量名1 变量名2……;
DROP 变量名1 变量名2……;
KEEP 表示数据集要进行保留的变量名;
DROP 表示数据集要进行删除的变量名。
观测筛选
SAS中用DELETE 和 OUTPUT来实现变量的筛选。语法格式为:
IF 变量名 条件 THEN DELETE;
IF 变量名 条件 THEN OUTPUT;
DELETE 是将满足条件的记录删除,输出不满足条件的记录;
OUTPUT 是输出满足条件的记录。