Message-ID: <7D89DC3F-6946-4F45-8C6D-27327662F03F@me.com>
Date: 2013-05-03T16:02:48Z
From: Marc Schwartz
Subject: Why can't R understand if(num!=NA)?
In-Reply-To: <CABcx46DOkqo+2njKqaFyaxBN7YRBj7YKn_r3TkQw1JUi9m4Tfg@mail.gmail.com>
On May 3, 2013, at 10:24 AM, jpm miao <miaojpm at gmail.com> wrote:
> I have a program, when I write
>
> if(num!=NA)
>
> it yields an error message.
>
> However, if I write
>
> if(is.na(num)==FALSE)
>
> it works.
>
> Why doesn't the first statement work?
>
> Thanks,
>
> Miao
NA is undefined:
> NA == NA
[1] NA
> NA != NA
[1] NA
Therefore the equality you are attempting does not return a TRUE or FALSE result, it is unknown and NA is returned. ?is.na was designed specifically to test for the presence of an NA value and return a TRUE or FALSE result which can then be tested.
See: http://cran.r-project.org/doc/manuals/r-release/R-intro.html#Missing-values
Regards,
Marc Schwartz