Language Reference

CHOOSE Function

CHOOSE (condition, result-for-true, result-for-false) ;

This function is supported by the IML procedure and the iml action.

The CHOOSE function examines each element of the first argument for being true (nonzero and not missing) or false (zero or missing). For each true element, it returns the corresponding element in the second argument. For each false element, it returns the corresponding element in the third argument.

The arguments to the CHOOSE function are as follows:

condition

is checked for being true or false for each element.

result-for-true

is returned when condition is true.

result-for-false

is returned when condition is false.

Each argument must be conformable with the others (or be a scalar value).

For example, suppose that you want to choose between x and y according to whether x number-sign y is odd or even, respectively. You can use the following statements to execute this task, as shown in Figure 70:

x = {1, 2, 3, 4, 5};
y = {101, 205, 133, 806, 500};
r = choose(mod(x#y,2)=1, x, y);
print x y r;

Figure 70: Result of the CHOOSE Function

xyr
11011
2205205
31333
4806806
5500500


As another example, the following statements replace all missing values in the matrix z with zeros, as shown in Figure 71:

 z = {1 2 ., 100 . -90, . 5 8};
 newZ = choose(z=., 0, z);
 print z, newZ;

Figure 71: Replacement of Missing Values

z
12.
100.-90
.58

newZ
120
1000-90
058


Last updated: May 07, 2026