From ripley at stats.ox.ac.uk  Wed Jun 28 10:12:06 2006
From: ripley at stats.ox.ac.uk (ripley at stats.ox.ac.uk)
Date: Wed, 28 Jun 2006 10:12:06 +0200 (CEST)
Subject: [Rd] order() (PR#9039)
Message-ID: <20060628081206.B365B53573@slim.kubism.ku.dk>

The issue here is rather that sort.list() does not implement complex 
vectors: order() uses sort.list() for speed if it has a single argument.

How sort() and order() collate complex numbers seems to be undocumented in 
R.  I was taught that they were unsorted, and there are several possible 
sort orders.  It seems the collation is as a (real, imaginary) pair.

This will be fixed for R 2.4.0: please consider a suitable donation to the 
R Foundation for the reduction in your annoyance.

On Wed, 28 Jun 2006, mh.smith at niwa.co.nz wrote:

> Full_Name: Murray Smith
> Version: 2.2.1

How did you manage to miss all the injunctions not to report on obselete 
versions of R?

> OS: Windows XP
> Submission from: (NULL) (202.36.29.1)
>
>
> order() will not allow a complex vector for its first argument. This contrasts
> with sort() which will happily sort a complex vector.
>
> While this may not be regarded as a bug by some, it is annoying for anyone who
> makes frequent use of complex numbers.
>
> The problem occured in the Windows version 2.2.1 of R, but it has been present
> in earlier versions.
>> version
>         _
> platform i386-pc-mingw32
> arch     i386
> os       mingw32
> system   i386, mingw32
> status
> major    2
> minor    2.1
> year     2005
> month    12
> day      20
> svn rev  36812
> language R
>
> An example demonstrating the problem:
> x <- rep(2:1, c(2, 2)) + 1i*c(4, 1, 2, 3)
>> x
> [1] 2+4i 2+1i 1+2i 1+3i
>> order(x)
> Error in order(x) : unimplemented type 'complex' in 'orderVector1'
>
> However sort() works with complex arguments
>> sort(x)
> [1] 1+2i 1+3i 2+1i 2+4i
>
> The problem can be worked around either by
>> order(Re(x), Im(x))
> [1] 3 4 2 1
>
> or, because order() allows subsequent arguments to be complex, by using a
> constant vector for the first argument
>> order(numeric(length(x)), x)
> [1] 3 4 2 1
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>

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



[Rd] order() (PR#9039)
ripley at stats.ox.ac.uk