Expressions to select rows are a variant of code pieces containing expressions, but provide additional flexibility. These expressions
are typically used in functions with names containing ... selected columns ... where expressions are applied to chosses specifc columns to
include in the data processing.
Like expressions specified as code pieces, these expressions can be coded directly or provided as strings with preceding colon (:) symbols.
The expressions may return values of following types:
boolean | If it is an expression returning boolean values, then this expression will be calculated for every column, starting from the left with column 0. Typically, processing will be done on the corresponding columns if the outcome is true. |
string | if the expression returns a string, then a header name is assumed. Only existing header names will be accepted. |
numeral | If the expression returns a numeral, then one single column number is meant. Negative indexing is allowed, e.g. -1 refers to the last column with respect to the header row. |
set | If the expression returns a set, the the column numbers inside the sets will be used. Negative indexing is allowed as described above. The set may also contain existing header names. No columns will be processed if an empty set is provided. |
Note: Execution of selected columns will always be from left to right. Every column will be executed at most once, even if specified multiple times.
Example: {5,2,1,2,4} will execute columns 1, 2, 4 and finally 5 in this order only once.
table initialize ( animals,
{ { Animal, Snake, Bird, Dog, Fly, Lobster, Decapod, Woodlice, Centipede },
{ Leg count, 0, 2, 4, 6, 8, 10, 14, 100 },
Result 1,
Result 2,
Result 3 } );
counter[] = 0; // Process columns in specified order. (9..8..5 is from right to left)
table process selected columns ( animals, 2, {1..3, 10, 5..7}, [.] = ++counter[], [.] = '-' );
counter[] = 0; // Process columns in specified order
table process selected columns ( animals, 3, {Decapod, Bird, Fly, Dog, Dog, Dog}, [.] = ++counter[], [.] = '-' );
counter[] = 0; // From left to right: All animals beginning with A..D, excl. 1st column
table process selected columns ( animals, 4, col()>0 & [.,0] < 'E', [.] = ++counter[], [.] = '-' );
table list( animals );
0 : Animal | Snake | Bird | Dog | Fly | Lobster | Decapod | Woodlice | Centipede | |
1 : Leg count | 0 | 2 | 4 | 6 | 8 | 10 | 14 | 100 | |
2 : - | 1 | 2 | 3 | - | 4 | 5 | 6 | - | - | 7
3 : - | - | 1 | 2 | 3 | - | 4 | - | - | |
4 : - | - | 1 | 2 | - | - | 3 | - | 4 | |