16.4.6 The DO IF Command

DO IF expression.matrix commands…
[ELSE IF expression.matrix commands…]…
[ELSEmatrix commands…]
END IF.

A DO IF command evaluates its expression argument. If the DO IF expression evaluates to true, then PSPP executes the associated commands. Otherwise, PSPP evaluates the expression on each ELSE IF clause (if any) in order, and executes the commands associated with the first one that yields a true value. Finally, if the DO IF and all the ELSE IF expressions all evaluate to false, PSPP executes the commands following the ELSE clause (if any).

Each expression on DO IF and ELSE IF must evaluate to a scalar. Positive scalars are considered to be true, and scalars that are zero or negative are considered to be false.

The following matrix language fragment sets ‘b’ to the term following ‘a’ in the Juggler sequence:

DO IF MOD(a, 2) = 0.
  COMPUTE b = TRUNC(a &** (1/2)).
ELSE.
  COMPUTE b = TRUNC(a &** (3/2)).
END IF.