BookmarkSubscribeRSS Feed

[SAS 고급] 인덱스 생성하기 2 (Creating an Index 2)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 164

[SAS 고급인덱스 생성하기 2 (Creating an Index 2)

 

 

안녕하세요 ^^

 

 

 

지난 시간에 이어 색인(인덱스: index)을 생성하는 방법을 살펴보겠습니다.

 

 ▶ 이번 시간의 목표는 다음과 같습니다.

▷ DATA step을 사용하여 인덱스 생성하기

▷ PROC DATASETS를 사용하여 인덱스를 생성하기

▷ PROC SQL을 사용하여 인덱스를 생성하기

  

 

 인덱스를 생성하는 방법은 세 가지가 있습니다.

아래 세 방법을 하나씩 살펴보도록 하겠습니다.

▷ INDEX= Data Set Option을 이용하는 방법

▷ PROC DATASETS을 사용하는 방법

▷ PROC SQL을 사용하는 방법

 

SE22017031823291270.jpg

 

▶ 먼저 인덱스를 생성하는 절차입니다.

(1) 인덱스 생성 방법을 선택합니다.

(2) KEY 변수를 선정합니다.

(3) 유효한 SAS 이름을 제공합니다.

(4) 인덱스 생성 옵션을 지정합니다.

 

 INDEX= Data Set Option을 이용하여 인덱스 생성하기

▷ 우리는 이미 복합(Composite) 인덱스의 키(key) 변수 및 이름을 결정했습니다.

 

SE22017031823285470.jpg

 

- Data Set 옵션인 INDEX= 옵션은 아래와 같이 사용할 수 있습니다.

 

SE22017031823300670.jpg

 

- CustomerID ProductID는 각각 단일 인덱스로 생성됩니다. 

- OrderID ProductID의 결합은 SalseID라는 이름의 복합 인덱스로 생성됩니다.

이 복합인덱스는 OrderID ProductID를 연결한 값으로 각 행의 고유한 식별자를 생성할 것입니다.

 

SE22017031823303370.jpg

 

- Option MSGLEVEL=I로 하면인덱스 사용에 관한 추가 노트를 print하도록 지정할 수 있습니다.

 

 

 PROC DATASETS을 사용하여 인덱스 생성하기

기존 데이터 셋에서 인덱스를 작성하거나 삭제하고자 할 때, PROC DATASETS를 사용할 수 있습니다.

▷ 다음은 PROC DATASETS를 사용하여 인덱스를 만드는 방법의 예입니다.

 

SE22017031823310570.jpg

 

INDEX= Data Set Option을 사용한 경우와 마찬가지로,

CustomerID ProductID는 각각 단일 인덱스로, OrderID ProductID의 결합은 SalseID라는 이름의 복합 인덱스로 생성될 것입니다.

 

SE22017031823314970.jpg

 

- PROC DATASETS는 인덱스 생성 및 삭제에 대한 메시지를 쓰며,

- MSGLEVEL = 옵션은 필요하지 않습니다.

 

▷ 아래 PROC DATASETS 단계는 orion.saleshistory에서 지정된 세 개의 인덱스를 삭제해줍니다.

 

SE22017031823321170.jpg

 

 PROC SQL을 사용하여 인덱스 생성하기

기존 데이터셋에 인덱스를 만들거나 삭제하는 방법으로 PROC SQL을 사용할 수 있습니다.

 

▷ PROC SQL을 사용하여 인덱스를 생성하는 방법을 보여줍니다.

 단일 인덱스 CustomerID ProcductID, 그리고 복합 인덱스 SaleID를 생성하는 프로그램입니다.

각 인덱스 명은 아래 음영된 자리에 작성해줍니다. 

 

SE22017031823331570.jpg

 

각 인덱스명에 해당하는 key 변수는 아래와 같이 데이터셋명 다음 위치의 괄호 안에 코딩해줍니다.  

 

SE22017031823334470.jpg

 

복합인덱스 SaleID의 옵션을 보면 unique옵션을 설정하여KEY변수(OrderID ProductID)에 대한 값을 연결하여 데이터 행에 대한 고유 식별자를 형성하도록 하였습니다.

 

SE22017031823363370.jpg

 

실행 후 로그창을 확인해보면세 인덱스가 잘 정의되었음을 알 수 있습니다.

 

SE22017031823365470.jpg

 

▷ 인덱스를 삭제하고자 할 때에는 아래와 같이 코딩하여, CustomerID, ProcductID, 복합 인덱스 SaleID를 제거할 수 있습니다.

 

SE22017031823372370.jpg

 

 

 

 감사합니다 ^^

 

 

Version history
Last update:
‎06-17-2020 02:33 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags