From ligges at statistik.uni-dortmund.de  Tue Mar  7 16:50:34 2006
From: ligges at statistik.uni-dortmund.de (Uwe Ligges)
Date: Tue, 07 Mar 2006 16:50:34 +0100
Subject: [Rd] possible bug: NULL equality in lists.
In-Reply-To: <m2wtf6w9jr.fsf@ziti.local>
References: <440D9B1E.6020001@vanderbilt.edu>	<440DA2FE.8050709@statistik.uni-dortmund.de>
	<m2wtf6w9jr.fsf@ziti.local>
Message-ID: <440DABCA.6030108@statistik.uni-dortmund.de>

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



[Rd] possible bug: NULL equality in lists.
Uwe Ligges