Duncan Murdoch wrote:
On 23/03/2009 7:37 PM, Stavros Macrakis wrote:
It appears to be the
zero-length name:
is.name(ff$x) => TRUE
as.character(ff$x) => ""
This may give you a hint:
> y <- ff$x
> y
Error: argument "y" is missing, with no default
It's a special internal thing that triggers the missing value error when
evaluated. It probably shouldn't be user visible at all.
Yes, it actually is the zero-length name that is being used for this,
but that is not really useful knowledge because it is forbidden to
create them as `` or as.name(""). We did briefly consider making the
missing object a real R object, but the semantics are too weird:
Basically, you can only assign it once, next time you get errors:
> x <- alist(a=)$a
> missing(x)
[1] TRUE
> y <- x
Error: argument "x" is missing, with no default
> l <- alist(a=, b=2)
> l$b <- x
Error: argument "x" is missing, with no default
And, as you think about it, you realize that you cannot disable these
mechanisms, because _something_ has to trap use of missing arguments.
It does actually work to define a function mvi() which returns the
missing value indicator and have things like
> list(x= mvi(), b= quote(!x))
$x
$b
!x
work. I'd hate writing its help page, though.
--
O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalga...@biostat.ku.dk) FAX: (+45) 35327907
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel