>>>>> Bert Gunter >>>>> on Thu, 9 May 2019 08:46:15 -0700 writes:> Juan: > No, I think there may be a bug: >> duplicated(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) > [,1] [,2] > [1,] FALSE TRUE > [2,] FALSE FALSE > [3,] FALSE FALSE > ## This is wrong > ## But if we first define the array... >> a <- array(c(1,2,3,4,5,6), c(3,2)) >> duplicated(a, MARGIN = 1:2) > [,1] [,2] > [1,] FALSE FALSE > [2,] FALSE FALSE > [3,] FALSE FALSE > ## This is right Well, the two arrays are different: The first has a '2' instead of a '4' ((and this would not happen if you used 1:6 instead ..)) > I'll wait a bit before filing a bug report so that any error I may be > making can be pointed out (note that my R version is NOT current, so I need > to update). >> sessionInfo() > R version 3.5.2 (2018-12-20) > Platform: x86_64-apple-darwin15.6.0 (64-bit) > Running under: macOS Mojave 10.14.4 > Matrix products: default > BLAS: > /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib > LAPACK: > /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib > locale: > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > attached base packages: > [1] stats graphics grDevices utils datasets methods base > loaded via a namespace (and not attached): > [1] compiler_3.5.2 tools_3.5.2 > 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 Thu, May 9, 2019 at 8:10 AM Juan Gomez <juangomezduaso at gmail.com> wrote: >> I think there is an error in duplicated() help page when it states that: >> "The array method calculates for each element of the sub-array >> specified by MARGIN if the remaining dimensions are identical to those >> for an earlier (or later, when fromLast = TRUE) element (in row-major >> order). " >> Instead of: >> "... (in column-major order)" >> >> For instance: >> duplicated(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) >> [,1] [,2] >> [1,] FALSE TRUE >> [2,] FALSE FALSE >> [3,] FALSE FALSE >> > >> >> ______________________________________________ >> 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]] > ______________________________________________ > 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.
Thanks, Martin. I missed the duplication. My apology -- old age is asserting it's presence. Then my response is: I think the documentation is correct as written:> a <- matrix(rep(1:3,2), nr=3) > a[,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 3 3> duplicated(a)[1] FALSE FALSE FALSE> ## Note: Row major by default !> duplicated(a, MAR = 2)[1] FALSE TRUE Again, apologies for my silly error. Cheers, Bert On Thu, May 9, 2019 at 8:56 AM Martin Maechler <maechler at stat.math.ethz.ch> wrote:> >>>>> Bert Gunter > >>>>> on Thu, 9 May 2019 08:46:15 -0700 writes: > > > Juan: > > No, I think there may be a bug: > > >> duplicated(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) > > [,1] [,2] > > [1,] FALSE TRUE > > [2,] FALSE FALSE > > [3,] FALSE FALSE > > ## This is wrong > > > ## But if we first define the array... > >> a <- array(c(1,2,3,4,5,6), c(3,2)) > >> duplicated(a, MARGIN = 1:2) > > [,1] [,2] > > [1,] FALSE FALSE > > [2,] FALSE FALSE > > [3,] FALSE FALSE > > ## This is right > > Well, the two arrays are different: > The first has a '2' instead of a '4' > ((and this would not happen if you used 1:6 instead ..)) > > > I'll wait a bit before filing a bug report so that any error I may be > > making can be pointed out (note that my R version is NOT current, so > I need > > to update). > > >> sessionInfo() > > R version 3.5.2 (2018-12-20) > > Platform: x86_64-apple-darwin15.6.0 (64-bit) > > Running under: macOS Mojave 10.14.4 > > > Matrix products: default > > BLAS: > > > /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib > > LAPACK: > > > /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib > > > locale: > > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > > attached base packages: > > [1] stats graphics grDevices utils datasets methods base > > > loaded via a namespace (and not attached): > > [1] compiler_3.5.2 tools_3.5.2 > > > 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 Thu, May 9, 2019 at 8:10 AM Juan Gomez <juangomezduaso at gmail.com> > wrote: > > >> I think there is an error in duplicated() help page when it states > that: > >> "The array method calculates for each element of the sub-array > >> specified by MARGIN if the remaining dimensions are identical to > those > >> for an earlier (or later, when fromLast = TRUE) element (in > row-major > >> order). " > >> Instead of: > >> "... (in column-major order)" > >> > >> For instance: > >> duplicated(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) > >> [,1] [,2] > >> [1,] FALSE TRUE > >> [2,] FALSE FALSE > >> [3,] FALSE FALSE > >> > > >> > >> ______________________________________________ > >> 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]] > > > ______________________________________________ > > 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]]
---------- Forwarded message --------- De: Juan Gomez <juangomezduaso at gmail.com> Date: vie., 10 may. 2019 a las 11:12 Subject: Re: [R] error in duplicated() man page To: Bert Gunter <bgunter.4567 at gmail.com> Coming back to my example, which I think illustrates my point, we have 3x2 groups (as specified in MARGIN dimensions) with one cell in each group. The function looks for an earlier group having the same value. It does so in column major order (IMHO) and so, it gives a FALSE for the 2 at coordinates (2,1) and gives TRUE for the one at coordinates (1,2). In row major order it would find the "2" in the first row first, and the "2" in the second row will be considered as duplicated If the documentation were right, I think the call would be: duplicatedRowMajor(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) [,1] [,2] [1,] FALSE FALSE [2,] TRUE FALSE [3,] FALSE FALSE El jue., 9 may. 2019 a las 19:15, Bert Gunter (<bgunter.4567 at gmail.com>) escribi?:> > Thanks, Martin. I missed the duplication. My apology -- old age is asserting it's presence. > > Then my response is: I think the documentation is correct as written: > > > a <- matrix(rep(1:3,2), nr=3) > > a > [,1] [,2] > [1,] 1 1 > [2,] 2 2 > [3,] 3 3 > > > duplicated(a) > [1] FALSE FALSE FALSE > > ## Note: Row major by default ! > > > duplicated(a, MAR = 2) > [1] FALSE TRUE > > Again, apologies for my silly error. > > Cheers, > Bert > > > > On Thu, May 9, 2019 at 8:56 AM Martin Maechler <maechler at stat.math.ethz.ch> wrote: >> >> >>>>> Bert Gunter >> >>>>> on Thu, 9 May 2019 08:46:15 -0700 writes: >> >> > Juan: >> > No, I think there may be a bug: >> >> >> duplicated(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) >> > [,1] [,2] >> > [1,] FALSE TRUE >> > [2,] FALSE FALSE >> > [3,] FALSE FALSE >> > ## This is wrong >> >> > ## But if we first define the array... >> >> a <- array(c(1,2,3,4,5,6), c(3,2)) >> >> duplicated(a, MARGIN = 1:2) >> > [,1] [,2] >> > [1,] FALSE FALSE >> > [2,] FALSE FALSE >> > [3,] FALSE FALSE >> > ## This is right >> >> Well, the two arrays are different: >> The first has a '2' instead of a '4' >> ((and this would not happen if you used 1:6 instead ..)) >> >> > I'll wait a bit before filing a bug report so that any error I may be >> > making can be pointed out (note that my R version is NOT current, so I need >> > to update). >> >> >> sessionInfo() >> > R version 3.5.2 (2018-12-20) >> > Platform: x86_64-apple-darwin15.6.0 (64-bit) >> > Running under: macOS Mojave 10.14.4 >> >> > Matrix products: default >> > BLAS: >> > /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib >> > LAPACK: >> > /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib >> >> > locale: >> > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 >> >> > attached base packages: >> > [1] stats graphics grDevices utils datasets methods base >> >> > loaded via a namespace (and not attached): >> > [1] compiler_3.5.2 tools_3.5.2 >> >> > 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 Thu, May 9, 2019 at 8:10 AM Juan Gomez <juangomezduaso at gmail.com> wrote: >> >> >> I think there is an error in duplicated() help page when it states that: >> >> "The array method calculates for each element of the sub-array >> >> specified by MARGIN if the remaining dimensions are identical to those >> >> for an earlier (or later, when fromLast = TRUE) element (in row-major >> >> order). " >> >> Instead of: >> >> "... (in column-major order)" >> >> >> >> For instance: >> >> duplicated(array(c(1,2,3,2,5,6),c(3,2)), MARGIN=1:2) >> >> [,1] [,2] >> >> [1,] FALSE TRUE >> >> [2,] FALSE FALSE >> >> [3,] FALSE FALSE >> >> > >> >> >> >> ______________________________________________ >> >> 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]] >> >> > ______________________________________________ >> > 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.