Unexpected results from sort function when partial and index are used
On Wed, 3 Nov 2004, Tuszynski, Jaroslaw W. wrote:
Hi, Consider the following example: sort(10:1, partial=3) ## 1 2 3 7 6 5 4 8 9 10 sort(10:1, index=T) ## $x: 1 2 3 4 5 6 7 8 9 10 ## $ix: 10 9 8 7 6 5 4 3 2 1 sort(10:1, partial=3, index=T) ## 1 2 3 7 6 5 4 8 9 10 The first 2 calls gave expected returns; however, the third one did not returned an index as requested. I could not find anything about it in http://stat.ethz.ch/R-manual/R-patched/library/base/html/sort.html <http://stat.ethz.ch/R-manual/R-patched/library/base/html/sort.html> , so it seems to be an "undocumented feature". Does any body know how to "convince" sort to return index of partially sorted array?
You cannot. There is no underlying code to do so, and the person who added 'index.return' forgot this case. I was against having it at all -- we have sort.list for that purpose. I've updated the documentation. Sundar's match() solution will not work if there are duplicate values. If you need the index, just do a full sort -- partial sorting is only implemented for efficiency reasons, and nowadays full sorting is fast enough even on massive vectors.
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595