[SAS 프로그래밍] 일정하지 않게 입력된 데이터 다루기 1
안녕하세요^^
이번 시간에는 일정하지 않게 입력된 데이터를 다루는 방법에 대해서 알아보겠습니다.
변수값의 길이가 모두 같거나 혹은 일정한 규칙으로 데이터가 입력된 경우에는 SUBSTR과 같은 함수를 통해 데이터를 다루기가 쉽습니다.
그러나 데이터가 일정하게 입력되지 않은 경우엔 매번 다른 조건문으로 데이터를 핸들링 하는 것은 비효율적이므로, 한꺼번에 다루는 방법을 배워보도록 하겠습니다.
1. 뒤에서부터 데이터 읽기 – REVERSE(KREVERSE) 활용
2. 문자열이 포함된 값 추출하기 - INDEX, CONTAINS
먼저, 첫 번째 시간에는 일정하지 않게 입력된 데이터를 뒤에서부터 읽어서 가공하고자 할 때 사용할 수 있는 방법에 대해 함수 REVERSE(KREVERSE)를 활용하여 알아보겠습니다.
►REVERSE (KREVERSE)
REVERSE함수는 아래와 같이 사용될 수 있고, 함수 안의 expression 값을 뒤집어서 출력해 주는 함수입니다.
REVERSE(expression) ; KREVERSE(expression) |
데이터가 영어인 경우 REVERSE함수를 사용하면 되지만 한글이 있는 경우에는 KREVERSE를 사용해야 원하는 값으로 출력됩니다.
예제를 통해 살펴보겠습니다.
============================================================
위와 같은 예제 데이터가 있을 때, 그냥 KREVERSE함수를 사용하게 되면 BLANK의 값처럼 맨 앞에 공란이 생기게 됩니다. 따라서 LEFT함수나 COMPRESS함수를 사용하여 공란을 제거해 주면 NOBLANK1, NOBLANK2처럼 값을 출력할 수 있습니다.
► : (colon)
REVERSE함수와 함께 사용할 경우 유용한 연산자가 : (colon) 입니다.
콜론( : )은 보통 =: 혹은 IN: 의 형태로 사용하게 되는데
Variable =: value
와 같이 사용하게 되면 variable의 데이터 중에 ‘value’로 시작하는 모든 값들을 선택하게 되고
Variable IN: (value, value, … )
와 같이 사용하게 되면 variable의 데이터 중에 여러 개의 value중 하나라도 해당되는 값들을 선택하게 됩니다.
변수 origin에서 apple로 시작하는 값만 출력한 결과와
star, holly, bean, 백다방 으로 시작하는 값들을 선택하여 출력한 결과입니다.
변수 origin 값이 ‘store’로 끝나는 경우에는 dep에 ‘store’을 지정하였고
‘coffee’나 ‘커피’ 로 끝나는 경우엔 ‘cafe' 를,
‘book’이나 ‘서점’, ‘문고’ 끝나는 경우에는 ‘book’을 출력한 결과입니다.
이상으로 일정하지 않게 입력된 데이터를 뒤에서부터 읽을 때 활용할 수 있는 함수 REVERSE(KREVERSE)를 알아보았습니다.
감사합니다.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!