[SAS 고급] 인덱스 생성하기 2 (Creating an Index 2)
안녕하세요 ^^
지난 시간에 이어 색인(인덱스: index)을 생성하는 방법을 살펴보겠습니다.
▶ 이번 시간의 목표는 다음과 같습니다.
▷ DATA step을 사용하여 인덱스 생성하기
▷ PROC DATASETS를 사용하여 인덱스를 생성하기
▷ PROC SQL을 사용하여 인덱스를 생성하기
▶ 인덱스를 생성하는 방법은 세 가지가 있습니다.
- 아래 세 방법을 하나씩 살펴보도록 하겠습니다.
▷ INDEX= Data Set Option을 이용하는 방법
▷ PROC DATASETS을 사용하는 방법
▷ PROC SQL을 사용하는 방법
▶ 먼저 인덱스를 생성하는 절차입니다.
(1) 인덱스 생성 방법을 선택합니다.
(2) KEY 변수를 선정합니다.
(3) 유효한 SAS 이름을 제공합니다.
(4) 인덱스 생성 옵션을 지정합니다.
▶ INDEX= Data Set Option을 이용하여 인덱스 생성하기
▷ 우리는 이미 복합(Composite) 인덱스의 키(key) 변수 및 이름을 결정했습니다.
- Data Set 옵션인 INDEX= 옵션은 아래와 같이 사용할 수 있습니다.
- CustomerID와 ProductID는 각각 단일 인덱스로 생성됩니다.
- OrderID와 ProductID의 결합은 SalseID라는 이름의 복합 인덱스로 생성됩니다.
- 이 복합인덱스는 OrderID와 ProductID를 연결한 값으로 각 행의 고유한 식별자를 생성할 것입니다.
- Option MSGLEVEL=I로 하면, 인덱스 사용에 관한 추가 노트를 print하도록 지정할 수 있습니다.
▶ PROC DATASETS을 사용하여 인덱스 생성하기
- 기존 데이터 셋에서 인덱스를 작성하거나 삭제하고자 할 때, PROC DATASETS를 사용할 수 있습니다.
▷ 다음은 PROC DATASETS를 사용하여 인덱스를 만드는 방법의 예입니다.
- INDEX= Data Set Option을 사용한 경우와 마찬가지로,
- CustomerID와 ProductID는 각각 단일 인덱스로, OrderID와 ProductID의 결합은 SalseID라는 이름의 복합 인덱스로 생성될 것입니다.
- PROC DATASETS는 인덱스 생성 및 삭제에 대한 메시지를 쓰며,
- MSGLEVEL = 옵션은 필요하지 않습니다.
▷ 아래 PROC DATASETS 단계는 orion.saleshistory에서 지정된 세 개의 인덱스를 삭제해줍니다.
▶ PROC SQL을 사용하여 인덱스 생성하기
- 기존 데이터셋에 인덱스를 만들거나 삭제하는 방법으로 PROC SQL을 사용할 수 있습니다.
▷ PROC SQL을 사용하여 인덱스를 생성하는 방법을 보여줍니다.
▷ 단일 인덱스 CustomerID와 ProcductID, 그리고 복합 인덱스 SaleID를 생성하는 프로그램입니다.
- 각 인덱스 명은 아래 음영된 자리에 작성해줍니다.
- 각 인덱스명에 해당하는 key 변수는 아래와 같이 데이터셋명 다음 위치의 괄호 안에 코딩해줍니다.
- 복합인덱스 SaleID의 옵션을 보면 unique옵션을 설정하여, KEY변수(OrderID와 ProductID)에 대한 값을 연결하여 데이터 행에 대한 고유 식별자를 형성하도록 하였습니다.
- 실행 후 로그창을 확인해보면, 세 인덱스가 잘 정의되었음을 알 수 있습니다.
▷ 인덱스를 삭제하고자 할 때에는 아래와 같이 코딩하여, CustomerID, ProcductID, 복합 인덱스 SaleID를 제거할 수 있습니다.
감사합니다 ^^
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.