BookmarkSubscribeRSS Feed

[SAS 고급] 수치형 변수의 길이를 줄이는 방법 (Reducing the Length of Numeric Variables)

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

[SAS 고급] 수치형 변수의 길이를 줄이는 방법 (Reducing the Length of Numeric Variables)

 

안녕하세요^^

 

이번 시간에는 data set의 크기를 줄이는 방법과, SAS data set에서 수치형(numeric) 변수를 저장할 때 저장 공간을 줄이는 방법에 대해 알아보도록 하겠습니다.

 

 

 

▶ 데이터 파일의 크기를 줄이는 것이 왜 중요할까요?

​▷ 데이터 파일의 크기를 줄이기 위해 변수나 관측값을 제거하는 방법이 항상 가능한 것은 아닙니다.

​하지만, 변수의 길이를 줄이거나 데이터 파일을 압축하는 것은 I/O를 줄이고 데이터 저장 공간을 줄일 수 있는 방법입니다.

 

SE22017031814551170.jpgSE22017031814550170.jpg

 

▶ 먼저, 변수가 어떻게 저장되는지 알아보도록 하겠습니다.

▷ SAS 변수는 문자형(character) 또는 수치형(numeric)으로 저장됩니다.

 

SE22017031814555570.jpg

 

▷ 문자형(character) 변수는 하나의 문자 당 1byte로 저장됩니다.

 

SE22017031814561570.jpg

 

▷ 수치형(numeric) 변수는 가수와 진수를 사용하여 실수를 표현하는 floating-point를 사용하여 저장됩니다.

예를들어, 35298이라는 숫자는 +.35298 x 으로 계산되며, SAS에 저장될 때는 10의 5승에 해당하는 5와, 0.35298의 부호인 +, 나머지 소수부분인 .35298로 나누어 저장됩니다.

 

SE22017031814563970.jpg

 

부호는 1byte를 차지하며, floating-point 숫자는 8bytes 안에 저장됩니다.

 

▶ 수치형 변수의 길이를 줄이는 방법에 대해 알아보도록 하겠습니다.

▷ 수치형 변수는 LENGTH 문장을 통해 길이를 줄일 수 있습니다.

 

 

SE22017031814570670.jpg

 

장점 단점 

 - 데이터 저장 공간을 줄일 수 있습니다.

 - I/O가 줄어듭니다.

 - CPU 시간이 늘어납니다.

 - 큰 숫자나 높은 정확도를 갖는 숫자의 값이 바뀔 수 있습니다.

 

 

 ▷ Windows와 UNIX에서 수치형 변수의 길이에 따른 보일 수 있는 수치는 아래와 같습니다.

 

SE22017031814581770.jpg

 

▷ z/OS에서 수치형 변수의 길이에 따른 보일 수 있는 수치는 아래와 같습니다.

 

SE22017031814583570.jpg

 

 

▷ 예제를 통해 LENGTH 문장에 대해 알아보도록 하겠습니다.

 

SE22017031814590070.jpg

 

만약 StreetID 변수가 10자리 정수라면, LENGTH를 6으로 지정하면 모든 숫자를 정확하게 표현할 수 있습니다.

 

 

SE22017031814591670.jpg

 

같은 length를 갖는 변수를 지정할 때는, 여러 개의 변수를 한번에 작성하고 원하는 length를 지정할 수 있습니다.

 

 

SE22017031814592770.jpg

 

날짜 변수는 4 bytes로 지정하는 것이 일반적입니다.

 

 

SE22017031814593570.jpg

 

변수 Dependent의 값이 8.192을 넘지 않기 때문에 length를 3으로 지정합니다.

 

 

 

▷ 모든 수치형 변수의 길이를 줄이고 싶다면, LENGTH 문장에 DEFAULT= 옵션을 사용합니다.

 

SE22017031814595670.jpg

 

 

▷ 정수가 아닌 수치형 변수에 length를 줄이는 것은 위험합니다.

​첫 Data step과 두 번째 Data step에서의 값이 다르게 나온 것을 확인하실 수 있습니다. 즉, 정수의 값에만 LENGTH를 지정하시길 추천합니다.

 

SE22017031815003670.jpg SE22017031815004370.jpg

 

SE22017031815004970.jpg SE22017031815005570.jpg

 

 

 

 

이상으로 data set에서 수치형(numeric) 변수를 저장할 때 저장 공간을 줄이는 방법에 대해 알아보았습니다.

감사합니다^^

  

 

Version history
Last update:
‎06-17-2020 01:49 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