From mdowle at mdowle.plus.com  Wed May 23 10:37:36 2012
From: mdowle at mdowle.plus.com (Matthew Dowle)
Date: Wed, 23 May 2012 09:37:36 +0100
Subject: [Rd] Expected behaviour of is.unsorted?
Message-ID: <e1647ee6a646d7b2339189dfeffe994d.squirrel@webmail.plus.net>


Hi,

I've read ?is.unsorted and searched. Have found a few items but nothing
close, yet. Is the following expected?

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

Matthew

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United
Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] data.table_1.8.0

loaded via a namespace (and not attached):
[1] tools_2.15.0



[Rd] Expected behaviour of is.unsorted?
Matthew Dowle