SAS DIM function – Counting the elements in an array
The DIM function returns the number of literal elements in an array. It functions against multi-dimensional arrays as well as one-dimensional arrays.
1-dimensional array example
DIM(array_name)
Multi-dimensional array examples
DIM(m_array) -> returns the number of elements in the first dimension of the array
DIM5(m_array) -> returns the number of elements in the 5th dimension of the array
DIM(m_array, 5) -> returns the number of elements in the 5th dimension of the array
The classic use case for the DIM function is to return the number of elements in an array for the upper bound of a do loop process. Example:
array array_name(5) var1 var2 var3 var4 var5;
do i=1 to dim(array_name);
some SAS statements here
end;
SAS DIF function – Comparing previous records
The SAS DIF function is another useful tool for operating on previous records.
Lets say you want to know the difference in the last year's revenue and this year's revenue. Here is the data:
Year Revenue
2001 10,000
2002 30,000
2003 60,000
2004 100,000
data revenue1;
set revenue;
Rev_increase=dif1(revenue);
run;
Year Revenue Rev_increase
2001 10,000 .
2002 30,000 20,000
2003 60,000 30,000
2004 100,000 40,000
The dif functions compares the current record to the nth previous record.
Here is the basic syntax for INTNX: