LEAVE prevents the specified variables from being reinitialized whenever a new case is processed.
Normally, when a data file is processed, every variable in the active file is initialized to the system-missing value or spaces at the beginning of processing for each case. When a variable has been specified on LEAVE, this is not the case. Instead, that variable is initialized to 0 (not system-missing) or spaces for the first case. After that, it retains its value between cases.
This becomes useful for counters. For instance, in the example below the variable SUM maintains a running total of the values in the ITEM variable.
DATA LIST /ITEM 1-3. COMPUTE SUM=SUM+ITEM. PRINT /ITEM SUM. LEAVE SUM BEGIN DATA. 123 404 555 999 END DATA.
Partial output from this example:
123 123.00 404 527.00 555 1082.00 999 2081.00
It is best to use LEAVE command immediately before invoking a procedure command, because the left status of variables is reset by certain transformations—for instance, COMPUTE and IF. Left status is also reset by all procedure invocations.