In the code of functions 'order' and 'sort.list' in R 3.5.0 alpha (in https://svn.r-project.org/R/branches/R-3-5-branch/src/library/base/R/sort.R), in "fastpass, take advantage of ALTREP metadata", there is "try the reverse since that's easy too...". If it succeeds, ties are reordered, violating stability of sorting. Example: x <- sort(c(1, 1, 3)) x # 1 1 3 sort.list(x, decreasing=TRUE) # should be 3 1 2
Part of fastpass in 'sort.list' can make sorting unstable
3 messages · Suharto Anggono Suharto Anggono, Gabriel Becker, Luke Tierney
Thanks for catching this. This is easy to take out without touching the rest of the machinery. It also wouldn't be too hard to write a still-faster-but-not-quite-as-much-path which correctly reverses the sortedness of a sorted vector that includes ties. My suspicion, without being the one who will ultimately make that decision, is that that wouldn't go into 3.5.0 though. Best, ~G On Fri, Apr 6, 2018 at 3:03 PM, Suharto Anggono Suharto Anggono via R-devel
<r-devel at r-project.org> wrote:
In the code of functions 'order' and 'sort.list' in R 3.5.0 alpha (in https://svn.r-project.org/R/branches/R-3-5-branch/src/ library/base/R/sort.R), in "fastpass, take advantage of ALTREP metadata", there is "try the reverse since that's easy too...". If it succeeds, ties are reordered, violating stability of sorting. Example: x <- sort(c(1, 1, 3)) x # 1 1 3 sort.list(x, decreasing=TRUE) # should be 3 1 2
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Gabriel Becker, Ph.D Scientist Bioinformatics and Computational Biology Genentech Research [[alternative HTML version deleted]]
2 days later
Thanks -- fixed in R-devel and R-3-5-branch. luke
On Fri, 6 Apr 2018, Suharto Anggono Suharto Anggono via R-devel wrote:
In the code of functions 'order' and 'sort.list' in R 3.5.0 alpha (in https://svn.r-project.org/R/branches/R-3-5-branch/src/library/base/R/sort.R), in "fastpass, take advantage of ALTREP metadata", there is "try the reverse since that's easy too...". If it succeeds, ties are reordered, violating stability of sorting. Example: x <- sort(c(1, 1, 3)) x # 1 1 3 sort.list(x, decreasing=TRUE) # should be 3 1 2
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa Phone: 319-335-3386
Department of Statistics and Fax: 319-335-3017
Actuarial Science
241 Schaeffer Hall email: luke-tierney at uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu