[R] all.equal and use.names

Eric Berger er|cjberger @end|ng |rom gm@||@com
Thu May 28 10:10:27 CEST 2020


Why not just reorder the elements of the list so they should match?

t1 <- t1[ names(t1)[order(names(t1))]]
t2 <- t2[ names(t2)[order(names(t2))]]

identical(t1,t2)




On Thu, May 28, 2020 at 7:52 AM John Harrold <john.m.harrold using gmail.com>
wrote:

> Is there a way to compare t1 and t2 above such that the name is used
> instead of the index?
>
> On Wed, May 27, 2020 at 9:14 PM Bert Gunter <bgunter.4567 using gmail.com>
> wrote:
>
> > Nope. You misread I think. It says that use.names = TRUE causes
> mismatches
> > to be **reported** by name rather than index, not that it is recursing by
> > name. It still recurses by component indices.
> >
> > However, I still think that is wrong. It is not reporting mismatches
> > **by** name -- it is reporting mismatches **in** names as well as in
> value.
> >
> >
> > Bert Gunter
> >
> > "The trouble with having an open mind is that people keep coming along
> and
> > sticking things into it."
> > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
> >
> >
> > On Wed, May 27, 2020 at 8:23 PM John Harrold <john.m.harrold using gmail.com>
> > wrote:
> >
> >> Howdy Folks,
> >>
> >> I believe I'm having trouble understanding the documentation for
> >> all.equal.
> >> If I have two lists like this:
> >>
> >> t1 = list(a = c(1,2,3),
> >>           b = c("1", "2", "3"))
> >> t2 = list( b = c("1", "2", "3"),
> >>            a = c(1,2,3))
> >>
> >> If I read the documentation correctly, by setting use.names equal to
> TRUE
> >> I
> >> believe this comparison should evaluate as true:
> >>
> >> all.equal(t1,t2, use.names=TRUE)
> >>
> >> However, I get the following output:
> >>
> >> which appears as though it is performing the comparison based on walking
> >> through indices and comparing that way.
> >>
> >> [1] "Names: 2 string mismatches"
> >> [2] "Component 1: Modes: numeric, character"
> >> [3] "Component 1: target is numeric, current is character"
> >> [4] "Component 2: Modes: character, numeric"
> >> [5] "Component 2: target is character, current is numeric"
> >>
> >> Can someone tell me what I'm doing wrong here?
> >> --
> >> John
> >> :wq
> >>
> >>         [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> 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.
> >>
> >
>
> --
> John
> :wq
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list