sas를 이용해 merge를 하는데 조건이 두개의 데이터셋 합집합 개념에서 교집합 부분을 빼는 방법을 알아보자.
아래의 그림을 보면 이해가 쉬울 것이다.
한마디로 hwi1 데이터셋과 hwi2 데이터셋의 초록색 부분을 추출해 내는 것이다.
1. DATA STEP
먼저 기본적인 데이터스텝에서 해보자.
두개의 데이터셋에서 기준이 되는 변수를 각각 proc sort를 이용해 정렬을 한다.
그뒤 아래의 그림에 코딩과정 처럼 진행하면 추출이 가능한데
if문에 있는 =^은 같지 않다라는 뜻이다.
=^ 자리에 ne를 써도 같은 의미이다.
ne는 not equal의 줄임말이다.
2. proc sql
위와 같은 결과값을 추출하지만 sort과정이 필요없기때문에 처리 속도가 빠른 sql문을 이용해 추출해보자.
아래 그림을 참조
ace와 jin은 임의로 지정한 것이기 때문에 사용자가 어떠한 것을 써도 결과는 같다.
위의 두 결과창을 보면 join과 join1 데이터셋 결과는 같다.
다만 하나는 datastep을 이용해 추출하였고
다른 하나는 sql문을 이용해 추출한 것이다.
hwi1과 hwi2의 합집합은 총 5개의 관측치를 가지는데
여기서 교집합인 key 111과 key 444 데이터를 빼면
위와 같이 key값 222, 333, 555만 추출이 된 것을 알 수가 있다.
'SAS' 카테고리의 다른 글
[SAS] sas에서 그룹별로 특정값이 있는 경우 체크하는 방법 (0) | 2014.05.09 |
---|---|
[SAS] sas에서 left join 왼쪽데이터셋 기준 가로병합하는 방법(교집합되는 부분가져오는 경우) (0) | 2014.04.29 |
[SAS] sas에서 full join 하기 (합집합 개념) (0) | 2014.04.16 |
[SAS] sas에서 inner join 하기 (교집합 개념) (0) | 2014.04.16 |
[SAS] sas에서 obs를 생성하는 방법. 누적 숫자값을 가진 변수 생성 방법 (0) | 2014.04.15 |
댓글