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?

Thanks

Jarek

Jarek,

Looking at the code for sort, we see the following:

    if (!is.null(partial)) {
        if (!all(is.finite(partial)))
            stop("non-finite `partial'")
        y <- .Internal(psort(x, partial))
    } else {
       # other sort code
    }

so index.return is ignored if partial is provided. To get the index you can use ?match:

z <- rnorm(10)
x <- sort(z, partial = 3)
ix <- match(z, x)

Hopefully, I used ?match correctly. Please verify on your own.

--sundar

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to