Sorry, I meant to reply to the whole list. I can totally understand the list's policy of not defaulting to "reply to the list", but I keep forgetting it in practice (since I am in a couple of other lists with less traffic, where the default is to reply to the list.
Haris Skiadas Department of Mathematics and Computer Science Hanover College My off-list reply follows. On Nov 7, 2007, at 7:35 AM, Charilaos Skiadas wrote: > On Nov 7, 2007, at 2:51 AM, Prof Brian Ripley wrote: > >> 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. > > It should indeed, if I had looked at ?names, which I should have > thought of doing. I wonder why ?"[" doesn't mention it though, > especially the part about: "Subscripting by "" will match nothing > (not even elements which have no name)." > > What are the reasons for treating "" in a special way, btw? i.e. > can't we use NA to indicate "no name"? (Hm, come to think of it, NA > means more that we don't know the name, not that there isn't a > name. So perhaps it makes sense after all.) > > Actually the interpretation as "no name" is rather appropriate in > my case, in a way. The reason I have empty names is that I wanted > to "fake the presence of a grouping variable". I.e. I have code > that expect a factor, and uses that factor to split the data and > compute summaries. Providing a "trivial" factor would allow the > same code to handle the case where there is no factor at all. > >>> 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))] > > I like this second approach more. I had to use dimnames(table)[3] > instead of names(x) (and a couple more commas), since in my actual > case those names are in an array, but the idea is the same and it > worked beautifully. Thanks! > >> >> -- >> Brian D. Ripley, [EMAIL PROTECTED] >> 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 > > Haris Skiadas ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.