From murdoch at stats.uwo.ca  Tue Apr  4 21:52:06 2006
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Tue, 04 Apr 2006 15:52:06 -0400
Subject: [Rd] is.numeric (NA + NA) is TRUE, should be FALSE (PR#8745)
In-Reply-To: <20060404193835.009E6AB7A@slim.kubism.ku.dk>
References: <20060404193835.009E6AB7A@slim.kubism.ku.dk>
Message-ID: <4432CE66.2020102@stats.uwo.ca>

On 4/4/2006 3:38 PM, cfillekes at gmail.com wrote:
> Full_Name: c fillekes
> Version: Version 2.2.1  (2005-12-20 r36812)
> OS: Gentoo Linux kernel 2.6.12
> Submission from: (NULL) (129.116.71.233)
> 
> 
> 
> 
> "Not Available" is of course not a numeric: 
> R
> 
>> is.numeric (NA)
> [1] FALSE
> 
> But for some reason, all arithmetic operations on NA's are
> in fact numeric, even if it's with other NA's.  
> 
> 
>> is.numeric (NA+NA)
> [1] TRUE
>> is.numeric (NA^2)
> [1] TRUE
>> is.numeric (NA-NA)
> [1] TRUE
>> is.numeric (NA*NA)
> [1] TRUE
>> is.numeric (NA/NA)
> [1] TRUE
>>
> 
> This is not the expected thing.

But it is the documented thing, so it is not a bug:

"'is.numeric' returns 'TRUE' if its argument is of mode '"numeric"'
      (type '"double"' or type '"integer"') and not a factor, and
      'FALSE' otherwise."

The value is irrelevant.  You probably want to use "is.numeric(x) && 
all(is.finite(x))" to get the result you're expecting.

Duncan Murdoch



[Rd] is.numeric (NA + NA) is TRUE, should be FALSE (PR#8745)
Duncan Murdoch