selif

Purpose

Selects rows from a matrix. Those selected are the rows for which there is a 1 in the corresponding row of e.

Format

y = selif(x, e)
Parameters:
  • x (NxK matrix or string array) – data
  • e (vector) – Nx1 vector of 1’s and 0’s
Returns:

y (MxK matrix or string array) – consists of the rows of x for which there is a 1 in the corresponding row of e.

Examples

x = { 112 252,
       99 119,
      109  81,
      184 111,
      209  94 };

 y = selif(x, x[., 2] .> 100);

This example selects all rows of x in which the second column is greater than 100. This will set y equal to:

112    252
 99    119
184    111
x = { 0 10 20,
     30 40 50,
     60 70 80 };

e = (x[., 1] .gt 0) .and (x[., 3] .< 100);
y = selif(x, e);

The resulting matrix y is:

30 40 50
60 70 80

All rows for which the element in column 1 is greater than 0 and the element in column 3 is less than 100 are placed into the matrix y.

Remarks

The argument e will usually be generated by a logical expression using “dot” operators.

y will be a scalar missing if no rows are selected.

See also

Functions delif(), scalmiss()