본문 바로가기
SAS

[SAS] proc compare 데이터셋 비교하기

by SASBIGDATA김진휘 2013. 10. 14.

 

이렇게 a, b 두개의 데이터셋이 있다.

예제는 관측치가 작아서 눈으로 다르다는 것이 확인이 되지만

실무에서 쓰는 대용량의 데이터는 이렇게 확인하는 것이 어렵다.

 

오늘 알아볼 것은 두개의 데이터셋에 대한 차이를 proc compare을 사용해 확인해보는 것이다.

 

proc compare

→서로 같은지 다른지 확인이 안되는 두개의 데이터셋에 대한 차이를 비교해 볼 수 있다.

 

데이터셋 a와 b의 관측치의 수가 같을 경우

: 서로 다른 변수만 찾아 출력, 두 값을 비교해준다.

 

데이터셋 a의 관측치가 b의 관측치 보다 많은 경우 (a 관측치 수 > b 관측치 수)

: 다른 관측치의 수를 출력. a와 b의 관측치의 수가 동일한 영역까지만 비교

 

데이터셋 a의 관측치가 b의 관측치 보다 적은 경우 (a 관측치 수 < b 관측치 수)

: 아래의 예시 결과처럼 출력

 

 

 

 

 

만약 두개의 데이터셋이 완전히 같은 경우라면? 어떻게 출력될까???

 

데이터셋 a와 b는 관측치 1부터 7까지 가지는 값은 데이터를 가진 데이터 셋이다.

이 두 데이터셋을 proc compare를 이용해 비교해 보자.

 

 

note에서 처럼 아주 상세하게 두 데이터셋은 같다고 나타내준다.

 

proc compare의 각종 세부사항들

 

proc compare data=     compare=    out=      ;

var 변수명;

with 변수명;

id (decending) 변수명 (notsorted);

by 변수명;

 

proc compare

데이터셋을 비교해보자

 

data=   → 비교하려는 데이터셋

compare=   → 비교대상으로 사용될 데이터셋

out=   → 두 데이터셋의 차이 결과를 따로 저장할 데이터셋

var    → 두 데이터셋에 공통으로 있어 비교할 때 사용될 변수명 지정,

            옵션없을시 id,by문에 사용되는 변수 외 모든 변수에 대해 비교함

with   →  비교할 기준 데이터셋과 비교 대상이 되는 데이터셋의 변수명이 다를 시 비교대상의 변수명을 지정

 

말이 조금 어렵다 이게 무슨 말이냐?

 

예를 들어 보면

var a b;

with c d;

라고 지정했다면 a c, b d를 비교한다는 말인 것이다.

 

id    → 기준 데이터셋과 비교대상 데이터셋의 관측치를 대응시킬때 필요한 변수를 지정

by   →  특정변수의 각각의 수준별로 비교시 사용

           비교대상이 되는 데이터셋은 by뒤의 변수로 정렬되어 있어야 함

댓글