[Rd] possible bug: NULL equality in lists.

Uwe Ligges ligges at statistik.uni-dortmund.de
Tue Mar 7 16:50:34 CET 2006


Seth Falcon wrote:

> Uwe Ligges <ligges at statistik.uni-dortmund.de> writes:
> 
> 
>>Charles Dupont wrote:
>>
>>
>>>I was messing around with R and I found an example R behaving oddly:
>>>
>>>a <- alist(NULL, "bob", c(3,6,2,3))
>>>a
>>>a == 'NULL'
>>>a == "NULL"
>>>a == 'cat'
>>>
>>
>>
>>Always use is.null() to test on NULL, as in:
> 
> 
> What should I do if I want to check for the string "NULL"?

These are all dangerous, hence use the "safe" ways:

sapply(a, is.null)
sapply(a, identical, "NULL")
sapply(a, is.na)
sapply(a, identical, "NA")

Best,
Uwe



> 
>>a <- list(NULL, "NULL", NA, "NA")
> 
> 
>>a == "NULL"
> 
> [1]  TRUE  TRUE FALSE FALSE
> 
> 
>>a == "NA"
> 
> [1] FALSE FALSE  TRUE  TRUE
> 
> These are because of as.character:
> 
> 
>>as.character(a)
> 
> [1] "NULL" "NULL" "NA"   "NA"  
> 
> Yet,
> 
> 
>>as.character(NULL)
> 
> character(0)
> 
>>as.character(NA)
> 
> [1] NA
> 
> 
> + seth
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list