SAS 数据集操作

时间:2024-04-04 14:21:57

数据的合并

将不同的数据内容合并到一个数据集就是数据合并。 

SAS 数据集操作

纵向合并

SAS中用SET语句进行纵向合并,语法格式为: 
DATA 数据集; 
SET 数据集1(数据集选项) 数据集2(数据集选项) …… ; 
RUN;

*SET语句的作用是将若干个数据依次纵向连接,并存放到DATA语句建立的数据集中。 
如果SET语句后面只有一个数据集,相当于复制作用

SAS 数据集操作

纵向合并方法1 
SET 数据集1 (IN=临时变量) 数据集2 (IN=临时变量2)……;

SAS 数据集操作

纵向合并方法2 
当合并的两个数据集中同一个变量名称不同时,需要更改变量名统一名称合并; 
SET 数据集1(RENAME=(原名1=新名1)) 数据集2(RENAME=(原名1=新名1))……;

SAS 数据集操作

横向合并

SAS中用MERGE语句进行横向合并,语法格式为: 
DATA 数据集; 
MERGE 数据集1 数据集2……; 
BY 变量名1 变量名2……; 
RUN;

*MERGE的作用是将若干个数据集依次向右连接,并存放到一个新数据集中。 
BY 语句相当于指定索引,按索引变量匹配。

SAS 数据集操作

SAS 数据集操作

数据集排序

SAS中用于排序的方法是调用PROC SORT过程,语法格式为: 
PROC SORT DATA = 要排序的原始数据集 OUT = 排序好的数据集; 
BY 变量名称; 
RUN;

该过程将指定的原始数据集按照BY中的列名进行排序,并将排序好的数据存入新数据集中。 
*默认升序排列。 
若要进行降序排列,可用“BY DESCENDING 变量名称”实现。

SAS 数据集操作

数据对比

SAS中对比两个数据集的命令是PROC COMPARE,语法格式为: 
PROC COMPARE < NOSUMMARY> ; 
BY 变量1 变量2……; 
RUN;

PROC COMPARE 语句调用数据比较过程,选项BASE和COMPARE分别指定两个比较和被比较的数据集。 
NOSUMMARY 的作用是不显示概括性的结果。 
TRANSPOSE 的作用是按记录显示不一致的结果;如果不指定改选项,默认的是按变量显示不一致的结果。 
BY 语句相当于指定索引,按索引变量匹配。 
ID 语句通常指定索引变量。

SAS 数据集操作

数据查重

SAS中用PROC SORT来进行重复数据查找,语法格式为: 
PROC SORT ; 
BY 变量1 变量2 ……; 
RUN;

NOUNIQUEKEY 的作用是留下数据集中具有重复的记录,去除不重复的记录。 
(指的是BY 后面所跟变量的重复)。 
NODUKKEY 的作用是删除重复的BY后面的变量记录,对于重复的数据按先后顺序只保留最前面的一条记录。

SAS 数据集操作

SAS 数据集操作

数据筛选

变量筛选

SAS中用KEEP 和 DROP来实现变量的筛选。语法格式为: 
KEEP 变量名1 变量名2……; 
DROP 变量名1 变量名2……;

KEEP 表示数据集要进行保留的变量名; 
DROP 表示数据集要进行删除的变量名。

SAS 数据集操作

观测筛选

SAS中用DELETE 和 OUTPUT来实现变量的筛选。语法格式为: 
IF 变量名 条件 THEN DELETE; 
IF 变量名 条件 THEN OUTPUT;

DELETE 是将满足条件的记录删除,输出不满足条件的记录; 
OUTPUT 是输出满足条件的记录。

SAS 数据集操作