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

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

 From Marta García-Granero To statalist@hsphsun2.harvard.edu 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:

Description

Stata has 27 numeric missing values:

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

```
.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 >=.

HTH,
Marta GG
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```