[Rd] all.equal.list() sometimes fails with unnamed and named
Wed, 4 Oct 2000 08:43:57 +0200 (CEST)
>>>>> Prof Brian D Ripley writes:
> 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
>> > and in R
>> > $"NA"
>> > NULL
>> > so S always partial matches, but R does not always.)
>> More precisely, we have
>>  1
>> Does this make sense at all? Comparing it to
R> x <- list(aa=1, bb=2, "NA"=3)
>>  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.
Agreed. Should not be too hard to spot ...
>> 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.
Well should it really FAIL?
What would be the precendence of the comparisons? E.g.,
* compare the lenghts. If different, only retain the components from 1
to the smaller lenght.
* Go through these. If they have names, compare the names. Then
compare the values.
[If both components have the same name but differ in value, the output
would display the name and not the position, right? I mean something
msg <- c(msg, paste("Component ", nc[i], ": ", mi, sep=""))
msg <- c(msg, paste("Component ", i, ": ", mi, sep=""))
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: email@example.com