all.equal.list() sometimes fails with unnamed and named components (PR#674)
On Wed, 4 Oct 2000, Kurt Hornik wrote:
I think that both the names and components should match exactly (the components recursively). Unfortunately the named-component extraction
is partial matching (at least, sometimes) so the ordering of the names always matters. (There's an S/R difference here I keep forgetting to write down. I think it is
x <- list(aa=1, bb=2) x["a"]
which gives in S $aa: [1] 1 and in R $"NA" NULL so S always partial matches, but R does not always.)
More precisely, we have R> x[["a"]] [1] 1 R> x["a"] $"NA" NULL Does this make sense at all? Comparing it to R> x <- list(aa=1, bb=2, "NA"=3) R> x["NA"] $"NA" [1] 3 I would think that the x["a"] incorrectly indicates that the list has a named component "NA" with value NULL ...
Yes, so would I. I think it is a bug in R.
What should we do about all.equal.list()? Should we deal with the named components first and strip them off, or always go the positional route? Your comment that lists are generic vectors would indicate that the second approach is more appropriate ...
See the first two lines I've left here. I think it should be positional matching *and* the names should match too. That is, all.equal.list would fail if one list had names and other did not.
Brian D. Ripley, ripley@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 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._