用 PROC COMPARE 比较两个数据集

您所在的位置:网站首页 sas变量必须具备的属性 用 PROC COMPARE 比较两个数据集

用 PROC COMPARE 比较两个数据集

2024-07-13 13:38| 来源: 网络整理| 查看: 265

一 、可比较的内容如下:

1:数据集的属性是否一致 2:变量及属性是否一致 3:观测是否一致

以下时2个用来练习的简单数据集,可运行相应代码查看结果:

data one; infile datalines delimiter = ','; input id $ name $ status $ grade $ ; datalines; 001,huahua,A,A 002,gaga,B,B 003,cici,C,C 004,qiqi,D,D 005,mumu,E,D ; run; data two; infile datalines delimiter = ','; input id $ name $ state $; datalines; 001,huahua,A 002,gaga,B 003,cici,C 004,qiqi,D 005,mumu,E ; run; 二、不同的比较类型 2.1 基本比对

以下代码会对数据集的方方面面进行全面比对,选项printall 会将所有的比对结果打印出来。

PROC COMPARE BASE = one COMPARE = two PRINTALL; RUN; /*PRINTALL option prints a full report of the differences */ 2.2 比较不同数据集中的变量

指定比对变量时若变量名一致,则只需VAR语句,若不一致,则需WITH 语句。

PROC COMPARE BASE = one COMPARE = two ; VAR NAME;(define variable in base) /*WITH variable_name;*/(define variable in compare) RUN; 2.3 比较同一数据集中的不同变量 PROC COMPARE BASE = one briefsummary; var status; with grade; RUN; 2.4 通过共同的ID比较2个数据集

在通过共同的ID 比较数据集签,应先对两个数据集基于ID排序,

PROC SORT DATA= ONE; BY ID;RUN; PROC SORT DATA= TWO; BY ID;RUN; PROC COMPARE BASE = ONE COMPARE = TWO; ID id; RUN; 2.5 仅比对两个数据集的属性 PROC COMPARE BASE = ONE COMPARE = TWO NOVALUES LISTVAR; RUN;

也可以将比对结果利用以下选项输出: option out=dataset-name outnoequal outbase outcomp outdiff; outequal :只包含不等的记录 outbase : 输出base 中的不相等的记录 outcomp : 输出compare 中的不相等的记录 outdiff : 不等记录间的差异。 也可以通过OUTSTATES 输出差异的统计数据;

*注:以上代码中均将 数据集 one 作为base ,two 作为对比数据集,谁为base没有区别,但须明确需要对比的内容。

以下几张图片是SAS HELP 内关于没有提到的属性截图,一般不太常用,如果需要可查看帮助指南。 该图是SAS HELP 内关于没有提到的属性的截图,一般不太常用,如果需要可查看帮助指南 在这里插入图片描述 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3