Re: [Rd] Expected behaviour of is.unsorted?

From: Richard Cotton <>
Date: Wed, 23 May 2012 11:23:39 +0100

>> is.unsorted(data.frame(1:2))
> [1] FALSE
>> is.unsorted(data.frame(2:1))
> [1] FALSE
>> is.unsorted(data.frame(1:2,3:4))
> [1] TRUE
>> is.unsorted(data.frame(2:1,4:3))
> [1] TRUE
> IIUC, is.unsorted is intended for atomic vectors only (description of x in
> ?is.unsorted). Indeed the C source (src/main/sort.c) contains an error
> message "only atomic vectors can be tested to be sorted". So that is the
> error message I expected to see in all cases above, since I know that
> data.frame is not an atomic vector. But there is also this in
> ?is.unsorted: "except for atomic vectors and objects with a class (where
> the >= or > method is used)" which I don't understand. Where >= or > is
> used by what, and where?
> I understand why the first two are FALSE (1 item of anything must be
> sorted). I don't understand the 3rd and 4th cases where length is 2:
> do_isunsorted seems to call lang3(install(".gtn"), x, CADR(args))). Does
> that fall back to TRUE for some reason?

I've just been having similar worries with this today. The odd behaviour seems to be particular to data.frames. Compare for example,

is.unsorted(list(1, 3, 2))              #NA
is.unsorted(data.frame(1, 3, 2)) #FALSE
is.unsorted(data.frame(1, 2, 3)) #TRUE

IMHO, it would be clearer if is.unsorted either always returned NA for recursive objects of length 2 or more, or it called unlist to make it atomic. Either way, it should really provide some sort of warning about non-standard input.


______________________________________________ mailing list
Received on Wed 23 May 2012 - 10:28:45 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 23 May 2012 - 10:31:35 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive