본문 바로가기

sas프로그램5

[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에서 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에서 full join 하기 (합집합 개념) sas에서 두개의 데이터셋을 full join하는 방법에 대해서 알아보자.(합집합 개념) 합집합에서는 좌 우측 데이터들의 일치 유무를 따지지 않고 모두 붙이는 개념인데 합치는 과정중 공백이 있다면 null값으로 처리한다. 위의 그림처럼 hwi1이라는 데이터 셋과 hwi2 데이터 셋의 합집합개념(초록색 부분)이라고 보면 된다. 1. data step 위의 사진은 data step을 사용하는 방법이다. proc sort과정을 하여 단순하게 merge시키면 위와 같이 원하는 합집합 개념의 결과가 도출된다. 2. proc sql(full join 사용) proc sql에서 full join명령어를 사용하는 방법이다. 자세히 보면 key변수의 555값이 없는 것을 볼 수 있다. 이것은 full join이 될때 기.. 2014. 4. 16.
[SAS] sas에서 inner join 하기 (교집합 개념) SAS에서 두개의 데이터셋을 합치는데 공통된 부분을 가로결합하는 방법을 알아보자. 쉽게 말하면 아래의 그림과 같이 초록색 부분인 교집합 부분을 출력하는 것이다. 위의 사진은 예제 데이터인 hwi1데이터셋과 hwi2데이터셋의 교집합 부분(초록색)을 출력하겠다는 그림이다. 1. data step 빅데이터에서는 proc sort과정의 처리속도 문제로 sql을 많이 사용하지만 일반적으로 많이 사용하는 데이터스텝에서 inner join(교집합)을 하는 과정을 알아보자. key값이 같은 데이터를 출력한다. join할 2개의 데이터셋의 기준이 되는 변수 key변수를 먼저 proc sort로 정렬을 한뒤 merge(가로병합)를 한다. 조건은 key기준으로 in의 a와 b가 같은 경우 교집한인 경우를 설정하면 위와 같이.. 2014. 4. 16.
[SAS] sas에서 obs를 생성하는 방법. 누적 숫자값을 가진 변수 생성 방법 sas에서 관측치를 구별하는 유니크한 값을 만들거나 obs값을 가진 변수를 생성하고 싶을때 사용하는 방법이다. 사진을 이용해 간단하게 알아보자.[아래 사진 참조] 위의 사진을 보면 jin이라는 테스트 데이터는 id와 cost라는 두개의 변수로 구성된 데이터셋이다. 옆에 변수를 하나더 생성하는데 1씩 증가하는 누적값을 가진 변수를 하나 생성해 보는 것이다. [코딩설명] retain은 변수를 순서대로 나열할때도 자주 사용되지만 초기값을 지정할때도 사용이 된다. retain obs_num 0; obs_num이라는 새로운 변수를 생성하는데 초기값을 0으로 지정한다. obs_num+1; obs_num에 1을 더한다. 이렇게 실행하면 첫번째 관측치가 초기값 0으로 지정되고 그 밑의 명령어에 의해서 1값이 더해진다... 2014. 4. 15.