With TIBCO Statistica 13.5 comparisons when missing data (MD) values are involved has changed.
Prior to Statistica version 13.5 if one of the conditions/variables in C1=C2 or C1<>C2 was a NULL/Missing data (MD) then the result would always be NULL/Missing data. While this logic made sense for operations such as >, <,<= or <= , this was not very logical for comparison operators such as = and <>.
Here is a small table that explains the results prior to 13.5 and after 13.5 specific to missing data.
Operation | 13.5 and later | 13.4 and prior |
If Non-MD=MD | FALSE | NULL/Missing Data |
If Non-MD<>MD | TRUE | NULL/Missing Data |
If MD=MD | TRUE | NULL/Missing Data |
If MD<>MD | FALSE | NULL/Missing Data |
Attached is another summary that specifically addresses how these comparisons have changed while comparing Text Labels to String
Operation | 13.5 and later | 13.4 and prior |
If Text(Non-MD)=Label(MD) | FALSE | NULL/Missing Data |
If Text(Non-MD)<>Label(MD) | TRUE | NULL/Missing Data |
If Text(MD)=Label(non-MD) | FALSE | FALSE |
If Text(MD)<>Label(non-MD) | TRUE | TRUE |
If Text(MD)=Label(MD) | TRUE | NULL/Missing Data |
If Text(MD)<>Label(MD) | FALSE | NULL/Missing Data |
If Text(Non-MD) [<] or [<=] Label(MD) | FALSE | NULL/Missing Data |
If Text(Non-MD) [>] or [>=] Label(MD) | TRUE | NULL/Missing Data |
If Text(MD) [<] or [<=] Label(non-MD) | TRUE | TRUE |
If Text(MD) [>] or [>=] Label(non-MD) | FALSE | FALSE |
If Text(MD) [<] or [>] Label(MD) | FALSE | NULL/Missing Data |
If Text(MD) [<=] or [>=] Label(MD) | TRUE | NULL/Missing Data |
Please find attached two spreadsheets that illustrate the changes with examples one showing what the comparison operators would return before and one showing the new behavior. Here is a summary:
- = and <> operators will now return true (false) if both operands are MD (instead of returning MD) and will return true (false) if exactly one is MD (as opposed to returning MD).
- <= and >= , in the equality case, they return true for both MD.
- < and >; if both operands are MD, and we say they are equal, then < and > should be false.
- When one value is text, comparison operators will treat MD as empty string and return a valid value