▶ proc sort
데이터셋을 지정한 변수로 정렬하는데 이용한다. sas의 data step문에서 자주 사용하는 명령어 중 하나이다.

proc sort 는 항상 by문과 함께 사용된다.

 

숫자는 missing, 음수, 영, 양수의 순으로 정렬하며
문자는 아래의 순서로 정렬한다.
 
빈칸 !  # $ % & * + - . / 0 1 2 3 4 5 6 7 8 9 : ; <  = > ? @
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_
abcdefghijklmnopqrstuvwxyz{/}~

 

 

 

다음 데이터 셋에 proc sort를 해보자.

 

data a;
input a b @@;
cards;
2 1 3 1 4 1 5 1 2 2 2 3 1 1 4 2 5 2 6 1
;
run;

 

proc sort data= a out=b;
by a;
run;

 

정렬된 내용을 보면 a변수로 정렬하도록 지정하였으며

out에 b에 정렬된 데이터셋을 저장하라고 지정한 것이다. out이 없는 경우 a 데이터셋에 정렬된다.

기본적으로 sort는 오름차순으로 정렬된다.

또한 같은 수가 있는 경우는 정렬 전 데이터에서 상위에 있는 데이터가 먼저 나오게 된다.

 

        [정렬하기 전 데이터 셋]                      [정렬 후 데이터 셋]

 

 

 

 

proc sort의 또하나의 기능은 중복을 제거할 수 있다.

 

proc sort data= a out=c nodupkey;
by a;
run;

다음과 같이 nodupkey를 이용하며 a변수값의 중복을 제거할 수 있다. 이때 주의할 점은 위의 정렬 경우와 마찬가지로 같은 값이 있을때 정렬 전 상위에 있는 값만 남게되고 아래 값들이 제거된다.

 

 

 

 

 

* 반대로 내림차순으로 정렬하고 싶은 경우는  descending 옵션을 사용하면 된다.

 

proc sort data= a out=d;
by descending a;
run;

 

 

 

 

출처: http://blog.naver.com/hur_yoon/

 

'IT > SQL' 카테고리의 다른 글

[SAS] proc rank  (0) 2017.03.23
[SAS] proc freq  (0) 2017.03.23
[SAS] proc transpose  (0) 2017.03.23
[SAS] proc compare  (0) 2017.03.23
[SAS] Retain 문  (0) 2017.03.23
[SAS] Format 문 / Informat 문  (0) 2017.03.23
[SAS] do ~ end, stop 명령문  (0) 2017.03.23

+ Recent posts