본문 바로가기

sas merge6

[SAS] sas에서 두개의 데이터셋 left join후 우측데이터 부분 모두 제거방법 sas에서 두개의 데이터셋 left join후 우측데이터 부분 모두 제거하는 방법을 알아보자. 글로써는 잘 이해가 되지 않으므로 아래의 그림을 통해 어떻게 조인할 것인지 확인하자. 위 그림처럼 hwi1 데이터셋과 hwi2 데이터셋을 left join을 하는데 hwi2에 해당하는 데이터셋은 제거하고 hwi1의 데이터만 추출하는 것이다. 그림처럼 hwi1과 hwi2의 공통되는 부분또한 hwi2에도 포함되므로 제거가 된다. hwi1의 단독데이터만 추출한다고 보면 될 것 같다. data step구문과 sql구문 두가지 방법을 사용해서 코딩을 해보자. 아래의 코딩 사진 처럼 data step과 sql코딩을 따라가면 우리가 원하는 결과를 추출할 수가 있다. 당연히 구문만 다를 뿐 결과는 같은 결과를 추출한다. [코.. 2014. 5. 12.
[SAS] sas에서 left join 왼쪽데이터셋 기준 가로병합하는 방법(교집합되는 부분가져오는 경우) sas에서 left join 왼쪽데이터셋 기준으로 가로병합하는 방법을 알아보자. 이경우는 공통된 교집합 부분을 포함하는 left join방법이다. 아래그림 참조 위의 그래프 그림과 같이 가로병합을 하되 hwi1(왼쪽데이터셋)기준으로 가로결합을 하며 공통된 부분은 같이 따라오게 하는 방법이다. 1. data step 먼저 sort과정을 거쳐 merge를 하는 data step에서 하는 방법을 알아보자. 가로 병합할 두개의 데이터셋의 키값(key)을 proc sort를 통해 정렬을 한다. 그리고 in이라는 데이터셋 옵션을 사용해서 if를 함께 이용해 in옵션에 임의의 변수명인 haha기준으로 merge를 하는 것이다. 아래 스크린샷 참조 2. proc sql 위와 같은 결과를 출력하는데 sort과정이 필요없.. 2014. 4. 29.
[SAS] sas에서 full join(합집합)에서 inner join(교집합)부분 빼는 방법(합집합-교집합) sas를 이용해 merge를 하는데 조건이 두개의 데이터셋 합집합 개념에서 교집합 부분을 빼는 방법을 알아보자. 아래의 그림을 보면 이해가 쉬울 것이다. 한마디로 hwi1 데이터셋과 hwi2 데이터셋의 초록색 부분을 추출해 내는 것이다. 1. DATA STEP 먼저 기본적인 데이터스텝에서 해보자. 두개의 데이터셋에서 기준이 되는 변수를 각각 proc sort를 이용해 정렬을 한다. 그뒤 아래의 그림에 코딩과정 처럼 진행하면 추출이 가능한데 if문에 있는 =^은 같지 않다라는 뜻이다. =^ 자리에 ne를 써도 같은 의미이다. ne는 not equal의 줄임말이다. 2. proc sql 위와 같은 결과값을 추출하지만 sort과정이 필요없기때문에 처리 속도가 빠른 sql문을 이용해 추출해보자. 아래 그림을 참.. 2014. 4. 25.
[SAS] sas proc sql left join(왼쪽 테이블 기준 결합) 방법 sas에서 proc sql문을 이용해서 데이터를 결합하는 방법들을 알아보자. sas proc sql left join(왼쪽 테이블 기준 결합) 방법 - 두개의 데이터셋에 조인키의 같은 값이 있는 경우 왼쪽 테이블을 기준으로 매치시켜 합치기 [sas proc sql left join 문장구조 설명] [sas proc sql left join 예제 설명] [쉽게 코딩을 알아보자] proc sql; create table 결과데이터셋 as select 임의의명.*(모든변수사용), 임의의명2.*(모든변수사용) from 합칠데이터1 as 임의의명 left join 합칠데이터2 as 임의의명2 on 임의의명.합칠데이터1의 조인키변수=임의의명2.합칠데이터2의 조인키변수; run; www.sasbigdata.com 김진휘 2014. 3. 14.
[SAS] sas proc sql과 proc sort 두 방법으로 merge할 경우 처리 속도 비교 sas를 이용하여 필요한 데이터를 구축하기 위해서 데이터 병합 작업을 많이 하게 된다. 쉽게 말해 sas로 데이터를 붙이고 짜르고 하는 작업이 빈번하게 발생한다는 말이다. 데이터 가로 병합(merge)을 흔하게 사용하는데 데이터가 작을 경우에는 어떤 병합 방법을 사용해도 처리시간이 거의 차이가 없지만, 데이터가 크면 클수록 시간이 오래 걸리기 때문에 처리시간을 단축시키는 방법을 찾게 된다. sas에서 full join merge를 한다는 기준으로 두가지 방법(proc sql문, proc sort문)을 보고 어떤 것이 처리시간이 빠른지를 알아보도록 하자. 당연히 같은 결과를 출력하는데 여러가지 방법이 있다면 빠르게 처리 할수 있는 방법을 아는 것이 실무에 많은 도움이 될 것이다. 위의 사진에서 두가지 방법.. 2014. 3. 12.
[SAS] sas merge 가로병합 끝장내기(full, left, right, inner join방법 소개) sas에서 데이터 핸들링을 하면서 데이터들을 붙이고 나누고 하는 작업들을 자주 하게 된다. 가장 많이 사용되는 것이 세로병합인 set 구문과 가로병합 merge인데 오늘은 merge 사용법에 대해서 알아보도록 하자. 사진을 보고 이해하면 아주 쉽게 이해 할 수 있을 것이다. 아래 사진에 m이라는 데이터셋과 m1이라는 데이터셋이 있는데 변수 key를 가지고 merge(가로병합)를 해보자. (아래사진참조) 1. 두 데이터를 조인시킬 변수를 proc sort를 통해 정렬한다. 예제에서는 key변수를 정렬한다.(아래사진참조) 2. full join merge 방법 (아래사진참조) 풀조인 말그대로 조건 없이 통째로 가로로 붙여버리는 거다. 3. left join merge 방법(아래사진참조) 한마디로 두개의 데이.. 2014. 3. 4.