Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Mata Behaviour for Missing Data and Op. Logic

From   Marta García-Granero <>
Subject   Re: st: Mata Behaviour for Missing Data and Op. Logic
Date   Tue, 11 Jun 2013 12:54:49 +0200

Hi Matthew

El 11/06/2013 11:53, Matthew McKay escribió:
Dear StataList,

I am debugging some MATA code that I have written and I have come across an issue:
I am iterating over a list of values: [0 0.2 0.1 .... Etc] and comparing each element with some cutoff level (ie 0.2).

I am finding that if there are any missing items in the original list: [0   0.1   .    0.2    0.3];
Then items that are missing evaluate to TRUE when greater than the cutoff.
(. > 0.2) -> 1
And evaluates to false when less than the cutoff
(. < 0.2) -> 0

I had assumed that if data was 'missing' it would either return 'missing' or return FALSE in both comparison cases!

Can anyone explain this to me?
(i.e. is missing (.) considered to be infinitely large?)

Yes, that's exactly what happens. From the help for missing:


    Stata has 27 numeric missing values:

., the default, which is called the "system missing value" or sysmiss


.a, .b, .c, ..., .z, which are called the "extended missing values".

Numeric missing values are represented by large positive values. The ordering is

all nonmissing numbers < . < .a < .b < ... < .z

Thus, the expression age > 60 is true if variable age is greater than 60 or missing.

To exclude missing values, ask whether the value is less than ".". For instance,

        . list if age > 60 & age < .

To specify missing values, ask whether the value is greater than or equal to ".". For instance,

        . list if age >=.

Marta GG
*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index