In a comparison, missing values typically return missing, not true or false. For this reason, it is very important to include a result that is always true. Suppose that a data table column contains the values 1, 2, 3, and a missing value in column A. A formula in column B sets up the comparison. For example, the following script:
New Table( "Testing Comparisons",
Add Rows( 4 ),
New Column( "A",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [1, 2, 3, .] )
),
New Column( "B", Character, "Nominal", Formula( If( :A, "true", 1, "false" ) ) )
);
"true"
"true"
"true"
"false"
If( |
|
:A, "true", |
If the value of A is nonmissing and nonzero, the result is "true". This comparison is true for the first three rows.
|
1, "false" |
|
) |
•
|
If one value is true and another is missing, Or() returns true. (Only one value in an Or() test needs to be true to get a true result.)
|
•
|
If one value is false and another is missing, And() returns false. (Both values in an And() test must be true to get a true result.)
|
If you know that some values are missing, you can also compare with Is Missing(). The comparison in the preceding example can be rewritten to return "missing" for missing values:
If( :A, "true", Is Missing( :A ), "missing", "false" );
The preceding expression returns "true" when A is nonmissing and nonzero, "missing" when A is missing, and "false" otherwise.
If the missing value could be 0, use the Zero Or Missing() function instead:
Zero Or Missing( A );
This expression returns 1 when A is 0 or missing.