[SAS 고급] 수치형 변수의 길이를 줄이는 방법 (Reducing the Length of Numeric Variables)
안녕하세요^^
이번 시간에는 data set의 크기를 줄이는 방법과, SAS data set에서 수치형(numeric) 변수를 저장할 때 저장 공간을 줄이는 방법에 대해 알아보도록 하겠습니다.
▶ 데이터 파일의 크기를 줄이는 것이 왜 중요할까요?
▷ 데이터 파일의 크기를 줄이기 위해 변수나 관측값을 제거하는 방법이 항상 가능한 것은 아닙니다.
하지만, 변수의 길이를 줄이거나 데이터 파일을 압축하는 것은 I/O를 줄이고 데이터 저장 공간을 줄일 수 있는 방법입니다.
▶ 먼저, 변수가 어떻게 저장되는지 알아보도록 하겠습니다.
▷ SAS 변수는 문자형(character) 또는 수치형(numeric)으로 저장됩니다.
▷ 문자형(character) 변수는 하나의 문자 당 1byte로 저장됩니다.
▷ 수치형(numeric) 변수는 가수와 진수를 사용하여 실수를 표현하는 floating-point를 사용하여 저장됩니다.
예를들어, 35298이라는 숫자는 +.35298 x 으로 계산되며, SAS에 저장될 때는 10의 5승에 해당하는 5와, 0.35298의 부호인 +, 나머지 소수부분인 .35298로 나누어 저장됩니다.
부호는 1byte를 차지하며, floating-point 숫자는 8bytes 안에 저장됩니다.
▶ 수치형 변수의 길이를 줄이는 방법에 대해 알아보도록 하겠습니다.
▷ 수치형 변수는 LENGTH 문장을 통해 길이를 줄일 수 있습니다.
장점 | 단점 |
- 데이터 저장 공간을 줄일 수 있습니다. - I/O가 줄어듭니다. |
- CPU 시간이 늘어납니다. - 큰 숫자나 높은 정확도를 갖는 숫자의 값이 바뀔 수 있습니다. |
▷ Windows와 UNIX에서 수치형 변수의 길이에 따른 보일 수 있는 수치는 아래와 같습니다.
▷ z/OS에서 수치형 변수의 길이에 따른 보일 수 있는 수치는 아래와 같습니다.
▷ 예제를 통해 LENGTH 문장에 대해 알아보도록 하겠습니다.
만약 StreetID 변수가 10자리 정수라면, LENGTH를 6으로 지정하면 모든 숫자를 정확하게 표현할 수 있습니다.
같은 length를 갖는 변수를 지정할 때는, 여러 개의 변수를 한번에 작성하고 원하는 length를 지정할 수 있습니다.
날짜 변수는 4 bytes로 지정하는 것이 일반적입니다.
변수 Dependent의 값이 8.192을 넘지 않기 때문에 length를 3으로 지정합니다.
▷ 모든 수치형 변수의 길이를 줄이고 싶다면, LENGTH 문장에 DEFAULT= 옵션을 사용합니다.
▷ 정수가 아닌 수치형 변수에 length를 줄이는 것은 위험합니다.
첫 Data step과 두 번째 Data step에서의 값이 다르게 나온 것을 확인하실 수 있습니다. 즉, 정수의 값에만 LENGTH를 지정하시길 추천합니다.
이상으로 data set에서 수치형(numeric) 변수를 저장할 때 저장 공간을 줄이는 방법에 대해 알아보았습니다.
감사합니다^^
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.