본문 바로가기

sas proc sort6

[SAS] sas에서 그룹별로 속하는 값 가로로 나열하는 방법(proc sort, proc transpose) sas를 이용하여 각 그룹별로 그룹에 속해있는 값들을 가로로 치환? 나열하는 방법을 알아보자. 데이터의 크기가 작은 경우에는 엑셀로 하는 것이 빠르지만 빅데이터(bigdata) 시대에 대용량 데이터에서 엑셀로 작업을 하는 것은 거의 불가능에 가깝다. sas를 사용해 간단하게 예제를 통해 알아보자. 위의 사진을 참고하자. 1. ace라는 데이터셋이 있다. 2. 그룹별로 어떤 데이터가 있는지를 먼저 알기 위해 proc sort를 통해 정렬을 한다. 사진의 왼쪽 하단처럼 데이터가 group별로 code값이 정렬이 된다. 3. 그럼 이 코드들을 우측으로 촤악~ 나열을 해야한다. 이때 사용되는 구문이 proc transpose이다. proc transpose 상세 내용은 아래의 주소를 클릭. http://sasb.. 2014. 3. 31.
[SAS] sas macro문장 동일한 작업과정 반복을 한번에 해결하기 sas의 macro(매크로) 문장에 대해서 간단하게 알아보자. 매크로 문장은 동일한 같은 작업과정을 여러번 반복하는 경우 사용되며, 특히 하나의 문장의 코딩이 매우 길고 그 작업을 여러번 해야 할 시 아주 유용하게 사용된다. 예제)month1,month2, month3이라는 데이터셋이 있는데 이 세개의 데이터셋을 모두 gender기준으로 proc sort를 하고, proc means를 하여 성별별 cost의 합계를 구하여 보자. www.sasbigdata.com 김진휘 2014. 3. 17.
[SAS] sas proc sql과 proc sort 두 방법으로 merge할 경우 처리 속도 비교 sas를 이용하여 필요한 데이터를 구축하기 위해서 데이터 병합 작업을 많이 하게 된다. 쉽게 말해 sas로 데이터를 붙이고 짜르고 하는 작업이 빈번하게 발생한다는 말이다. 데이터 가로 병합(merge)을 흔하게 사용하는데 데이터가 작을 경우에는 어떤 병합 방법을 사용해도 처리시간이 거의 차이가 없지만, 데이터가 크면 클수록 시간이 오래 걸리기 때문에 처리시간을 단축시키는 방법을 찾게 된다. sas에서 full join merge를 한다는 기준으로 두가지 방법(proc sql문, proc sort문)을 보고 어떤 것이 처리시간이 빠른지를 알아보도록 하자. 당연히 같은 결과를 출력하는데 여러가지 방법이 있다면 빠르게 처리 할수 있는 방법을 아는 것이 실무에 많은 도움이 될 것이다. 위의 사진에서 두가지 방법.. 2014. 3. 12.
[SAS] sas proc means를 이용해 그룹별 사분위수(q1, q3) 구하기. 이상치제거 응용가능 sas의 proc means를 이용하여 그룹별로 사분위수를 구하는 방법을 알아보자. 이 방법은 표본층화추출방법을 사용했거나 기타등 데이터에서 사분위수 이상치제거 작업전에 q1, q3를 구하는데 많이 사용되는 방법이다. 먼저 이작업의 유의점은 이전과는 달리 그룹별로 먼저 proc sort를 이용하여 정렬을 해주어야 한다. 그룹별로 정렬작업을 하고 그 뒤는 이전과 같이 사진 처럼 proc means를 이용해 q1과 q3를 구하면 된다. 대신 var cost - cost라는 연속형 변수에 대해 q1과 q3를 구하는데 우리는 이번에는 그룹별로 구할 것이므로 그전에 by group 라는 문구를 입력해준다. 그럼 사진의 맨 아래부분과 같이 그룹 a와 b별로 각각의 q1과 q3를 구할수 있다. _type_과 _fre.. 2014. 2. 21.
[SAS] sas proc transpose sas에서 proc transpose에 대해서 알아보자. by → sorting된 변수 zone, gender의 값을 그룹핑 한다. id → level 이 새로 생성되는 데이터셋(out=gg)의 변수로 치환 된다. var → score를 관측치를 갖는 변수가 된다. 데이터들이 어떻게 입력되는지 아래 그림을 참조하자. [ 프로그램 코딩 과정 ] data transpose; input zone gender $ level $ score; cards; 1 man vvip 100 1 woman vip 80 2 woman vip 85 2 man s 78 3 man a 69 3 woman vip 77 1 woman s 66 3 man s 61 ; run; proc sort data=transpose; by zone .. 2014. 2. 12.
[SAS] SAS에서 proc rank를 이용하여 순위구하기 SAS의 proc rank를 이용하여 값의 순위를 구하여 보자. 위의 사진을 보면 proc rank문을 이용하여 cost에 대한 순위를 구한 것이다. proc rank - 순위를 구하여보자 var cost - cost 변수에 대한 값들의 순위를 구해라. ranks cost_rank - 생성된 순위를 cost_rank라는 변수를 생성하여 입력해라. (위의 사진에서 rank for variable cost는 변수명이 아닌 자동으로 만들어진 라벨명이다. 실제 변수명은 지정한대로 cost_rank로 되어있음) 아래의 사진을 보면 option nolabel을 통해 라벨을 제거하면 실제 변수명을 볼 수 있다. 위의 사진과 함께 간단하게 순위를 매겨보았다. 기본적으로 작은값이 1부터 매겨진다. 아래의 사진을 통해 좀.. 2014. 2. 5.