美文网首页BG-SAS
SAS数据的对比和清洗

SAS数据的对比和清洗

作者: 3between7 | 来源:发表于2020-04-21 15:20 被阅读0次

数据的对比

SAS中对比两个数据集的命令是proc compare,它的基本格式如下:

proc compare <base=数据集 compare=数据集> <nosummary> <transpose>;
by 变量1 变量2;
id 变量1 变量2;
run;

其中,proc compare语句是调用数据比较过程,选项basecompare分别指定被比较的两个数据集; nosummary的作用是不显示一些概括性的结果;而transpose则是按记录显示不一致的结果,默认是按变量显示不一致的结果。

id语句通常指定索引变量,如id号,默认显示行号。举例说明:

forexample.png

一旦发现输入错误的数据集,便可以使用if ...then...语句进行修改,举例说明:

ifthen.png

数据的清洗

1.查找和删除重复值

SAS利用proc sort过程来查找和删除重复值,它的基本格式如下:

proc sort <data=数据集> <out=数据集>  <nouniquekey> <nodupkey>;
by <descending> 变量1 <descending> 变量2 ...;
run;

其中,若不指定out选项,那么排序后的数据集将覆盖原有数据集;nouniquekey的作用是输出重复值,nodupkey选项是输出唯一值。

by语句指定排序的变量,可以指定多个,默认按升序排序。

2.扩展内容:first.变量和last.变量

SAS的sort过程会自动产生两个变量:first.变量和last.变量,这两个变量分别表示某变量某个值的第一个和最后一个观测。直接举例说明其用法:

WX20200421-151353@2x.png

在上述例子中,需要注意的是,用set语句赋值数据集时,也要加上by语句,否则SAS不认first.idlast.id

除此之外,如果想要过滤掉观测的第一行,可以在proc print;前面加一句if not first.id;

相关文章

网友评论

    本文标题:SAS数据的对比和清洗

    本文链接:https://www.haomeiwen.com/subject/uyyuihtx.html