[R] Factors and NaN

Lee, Chel Hee chl948 at mail.usask.ca
Fri Dec 5 19:40:48 CET 2014


'NaN' is a reserved keyword that implies 'Not a number'.  I see that you 
use a character vector that includes 'NA' and 'NaN'.  The former 'NA' is 
considered as a missing value; however, the latter 'NaN' is considered 
as a string 'NaN'.  That's why three levels of 'NaN', 'no', 'yes' are 
shown.

Function 'is.nan()' test if a numeric value is 'NaN'. Since you are 
using a character vector, the result of using 'is.nan()' should be all 
FALSE.

If you wish to make R understand 'NaN' as missing value, it would be a 
good choice to use reserved keyword 'NA_character' as shown in the below:

 > x <- factor(c("yes", "yes", "no", NA, "yes", "no", NA_character_))
 > x
[1] yes  yes  no   <NA> yes  no   <NA>
Levels: no yes
 > is.na(x)
[1] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE

I hope this helps.

Chel Hee Lee

On 12/5/2014 9:16 AM, Dinesh Chowdhary wrote:
> R-3.1.2
>
>> x <- factor(c("yes", "yes", "no", NA, "yes", "no", NaN))
>> x
> [1] yes  yes  no   <NA> yes  no   NaN
> Levels: NaN no yes
>> is.nan(x)
> [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE
>
>>From the above snippet can you notice that the "NaN" value is not logically
> identified in a vector? Can anyone elaborate on this?
>
> Thank you for your effort!
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list