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]]
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 at 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 at 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]]
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 at 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 at 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 at 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]]