### 13.4 SELECT IF ¶

    SELECT IF expression.

`SELECT IF` selects cases for analysis based on the value of expression. Cases not selected are permanently eliminated from the active dataset, unless `TEMPORARY` is in effect (see TEMPORARY).

Specify a boolean expression (see Mathematical Expressions). If the value of the expression is true for a particular case, the case is analyzed. If the expression has a false or missing value, then the case is deleted from the data stream.

Place `SELECT IF` as early in the command file as possible. Cases that are deleted early can be processed more efficiently in time and space. Once cases have been deleted from the active dataset using `SELECT IF` they cannot be re-instated. If you want to be able to re-instate cases, then use `FILTER` (see FILTER) instead.

When `SELECT IF` is specified following `TEMPORARY` (see TEMPORARY), the `LAG` function may not be used (see LAG).

#### 13.4.1 Example Select-If ¶

A shop steward is interested in the salaries of younger personnel in a firm. The file `personnel.sav` provides the salaries of all the workers and their dates of birth. The syntax in Example 13.1 shows how `SELECT IF` can be used to limit analysis only to those persons born after December 31, 1999.

    get file = 'personnel.sav'.

    echo 'Salaries of all personnel'.
    descriptives salary.

    echo 'Salaries of personnel born after December 31 1999'.
    select if dob > date.dmy (31,12,1999).
    descriptives salary.

Example 13.1: Using `SELECT IF` to select persons born on or after a certain date.

From Result 13.1 one can see that there are 56 persons listed in the dataset, and 17 of them were born after December 31, 1999.

Salaries of all personnel

Descriptive Statistics
| N | Mean | Std Dev | Minimum | Maximum
--- | --- | --- | --- | --- | ---
Annual salary before tax | 56 | 40028.97 | 8721.17 | $23,451 | $57,044
Valid N (listwise) | 56 |  |  |  |
Missing N (listwise) | 0 |  |  |  |

Salaries of personnel born after December 31 1999

Descriptive Statistics
| N | Mean | Std Dev | Minimum | Maximum
--- | --- | --- | --- | --- | ---
Annual salary before tax | 17 | 31828.59 | 4454.80 | $23,451 | $39,504
Valid N (listwise) | 17 |  |  |  |
Missing N (listwise) | 0 |  |  |  |

Result 13.1: Salary descriptives before and after the `SELECT IF` transformation.

Note that the `personnel.sav` file from which the data were read is unaffected. The transformation affects only the active file.