Did you know that the CONSTANT function can help you to determine how
large an integer you can store in a numeric variable with a given number of
bytes?
This can be helpful when you are working at slimming-down SAS data sets
by reducing the number of bytes for numeric variables. If you know—and
know for sure—the largest value that will be stored in that variable,
and that you will only be using it to store integers, then you can set its
byte-size accordingly.
Here is how you can use the CONSTANT function with the EXACTINT
constant:
data _null_;
do i = 2 to 8 by 1;
exactint = constant('EXACTINT',i);
put i exactint;
end;
run;
The PUT statement produces the following:
2 32
3 8192
4 2097152
5 536870912
6 137438953472
7 3.5184372E13
8 9.0071993E15
So, a numeric variable created with a length of 4 will allow me to store
integers up to a value of 2,097,152. Note that these results may vary
depending on the platform you are using to run SAS.
Two other CONSTANT function constants that are worth exploring
are: BIG and SMALL.
·
BIG = constant(‘BIG’); - Returns the
largest double-precision floating-point number (8-bytes) that can be
represented on your computer.
·
SMALL = constant(‘SMALL’); - Returns the
smallest double-precision floating-point number (8-bytes) that can be
represented on your computer.
Check out the CONSTANT function for more insights on how numbers are handled
on your computing platform in the online documentation at support.sas.com. Then, see if it makes sense to slim down some
of your observations by right-sizing your numeric variables.
Best of luck in all your SAS
endeavors!
---MMMMIIIIKKKKEEEE
(aka Michael
A. Raithel)
Author of the new cult classic for computer programmers: It Only Hurts When I Hit <ENTER>
Print edition: http://tinyurl.com/z8bzx2e
Kindle edition: http://tinyurl.com/zypgqa7
The hack above is an excerpt from
the book: Did You Know That? Essential
Hacks for Clever SAS Programmers
http://www.amazon.com/Michael-A.-Raithel/e/B001K8GG90/ref=ntt_dp_epwbk_0
Author of the new cult classic for computer programmers: It Only Hurts When I Hit <ENTER>
Print edition: http://tinyurl.com/z8bzx2e
Kindle edition: http://tinyurl.com/zypgqa7
No comments:
Post a Comment