In reply to Nate.

Great question Nate! DO OVER loop is used to perform the operations in the DO loop over all elements in an array. For example, if you have an array A defined in a data step, you can loop through all its elements by either this indexed loop:

do i=1 to dim(A);
/* within this loop you reference array elements as A[i], for example: */
A[i] = A[i] + 3;
end;

or by this "do over" loop:

do over A;
/* within this loop you use just array name, not references A[i] by elements, */
/* for example: */
A = A + 3;
end;

For more details and examples, take a look at this article: How to Use ARRAYs and DO Loops: Do I DO OVER or Do I DO i?.