[R] Indexing, and using an empty string as a name
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Nov 7 08:51:02 CET 2007
On Tue, 6 Nov 2007, Charilaos Skiadas wrote:
> Hello all,
>
> I ran into the following, to me unexpected, behavior. I have (for
> reasons that don't necessarily pertain to the question at hand, hence
> I won't go into them) the need/desire to use an empty string for the
> name of a vector entry.
The 'R Languge Definition' says
The string "" is treated specially: it indicates `no name' and matches
no element (not even those without a name).
and from ?names
The name \code{""} is special: it is used to indicate that there is no
name associated with an element of a (atomic or generic) vector.
Subscripting by \code{""} will match nothing (not even elements which
have no name).
so it should perhaps have been expected.
> Perhaps I did not read ?"[" very carefully,
> but it seems to me that he following lines should return "1" at the end:
>
> x<-1:4
> names(x) <- c("","a","b","c")
> x[""]
>
>
> Instead, they return NA. Could anyone provide an explanation for this
> behavior?
You can do
> x[[""]]
[1] 1
(which is arguably a bug given the quotes above) or
x[match("", names(x))]
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list