From sfalcon at fhcrc.org  Tue Mar  7 19:23:00 2006
From: sfalcon at fhcrc.org (Seth Falcon)
Date: Tue, 07 Mar 2006 10:23:00 -0800
Subject: [Rd] possible bug: NULL equality in lists.
In-Reply-To: <440DBF17.9080400@statistik.uni-dortmund.de> (Uwe Ligges's
	message of "Tue, 07 Mar 2006 18:12:55 +0100")
References: <440D9B1E.6020001@vanderbilt.edu>
	<440DA2FE.8050709@statistik.uni-dortmund.de>
	<m2wtf6w9jr.fsf@ziti.local>
	<440DABCA.6030108@statistik.uni-dortmund.de>
	<m2slpuw5vj.fsf@ziti.local>
	<440DBF17.9080400@statistik.uni-dortmund.de>
Message-ID: <m28xrmw1vf.fsf@ziti.local>

Uwe Ligges <ligges at statistik.uni-dortmund.de> writes:
>> Point taken, but is the behavior of as.character correct?
>> as.character(list(NULL))
>> as.character(NULL)
>
>
> I thought about it quite a while. I think the current bahaviour is
> quite OK. What should as.character do in the follwing case:
>    as.character(list("A", NA, NULL))
> ?
>
> Note that it only can return a character vector...!
>
> So, should it return a character vector of length 2? That's a bad
> idea, if the length is reduced.

But consistent with vectorizing a list using unlist:

unlist(list(NULL, NULL, "a"))
[1] "a"

> Moreover, as.character() does not get a NA or a NULL object for
> coercion but an element of type list that itself conatins NA or
> NULL...

In the case of NA, I think converting to "NA" should be a last
resort.  Since NA is a perfectly valid element of a character vector,
it would seem to be a better choice.



[Rd] possible bug: NULL equality in lists.
Seth Falcon