INDEX는 문자열에서 특정 부분의 위치를 찾는 함수입니다.
예시를 통해 INDEX 활용 방법에 대해서 알아보겠습니다.
SAS의 Library 에는 미국의 지리 정보 데이터셋인 Zipcode라는 데이터가 있습니다.
21의 칼럼과 41,029개의 데이터로 이루어진 데이터입니다.
# 예시1
이 데이터셋은 총 21개의 컬럼으로 구성되어 있으며, 그 중 'City' 컬럼은 각 행의 도시 이름을 나타냅니다.
data test;
set sashelp.zipcode;
run;
data test2;
set test;
idx = index(city, 'Addis');
if idx > 0;
run;
sashelp 라이브러리에 데이터셋을 그대로 복사해 test라는 새로운 데이터셋을 생성합니다.
idx = index(city, 'Addis');
INDEX 함수를 사용해서 City 칼럼에 'Addis' 라는 단어가 처음 등장하는 위치를 IDX라는 칼럼에 표시합니다.
if idx > 0;
만약, IF 문이 없다면 City 칼럼에 'Addis'가 포함되어 있으며 IDX > 0이고, 포함되어 있지 않으면 idx = 0이 됩니다.
IF문이 있어서 'Addis'가 포함되어 있는 행만 남아 Test2 데이터셋에 저장됩니다.
그 결과, 41,029개의 데이터 중에 8개의 데이터만 TEST2에 저장됩니다.
# 예시 2
data test;
set sashelp.zipcode;
run;
data test2;
set test;
idx = index(upcase(countynm),'D');
if idx > 0;
run;
ZIPCODE 데이터에는 Countynm이라는 칼럼이 있으며,이 칼럼은 미국의 군(County) 이름을 나타냅니다.
countynm 컬럼 값을 대문자로 바꾼 뒤 (upcase(countynm)) 문자열 안에서 'D'가 처음 나타나는 위치를 찾습니다.
문자가 없다면 0이고 만약 'D'가 있으면 'D'가 위치한 자리수를 표시합니다.
위는 test2 데이터셋의 출력 결과입니다.
Countynm 컬럼의 'Adjuntas'는 'D'가 두 번째 자리에 위치하며, idx 컬럼에는 2가 표시됩니다.
Countynm 컬럼의 'Aguda'는 'D'가 다섯 번째 자리에 위치하며, idx 컬럼에는 5가 표시됩니다.
Nearly 200 sessions are now available on demand in the Innovate Hub.
Watch Now →