Fast high-level methods for sorting and ordering. These are wrappers to
ramsort.integer64()
and friends and do not modify their arguments.
Usage
# S3 method for class 'integer64'
sort(
x,
decreasing = FALSE,
has.na = TRUE,
na.last = TRUE,
stable = TRUE,
optimize = c("time", "memory"),
VERBOSE = FALSE,
...
)
# S3 method for class 'integer64'
order(
...,
na.last = TRUE,
decreasing = FALSE,
has.na = TRUE,
stable = TRUE,
optimize = c("time", "memory"),
VERBOSE = FALSE
)
Arguments
- x
a vector to be sorted by
ramsort.integer64()
andramsortorder.integer64()
, i.e. the output ofsort.integer64()
- decreasing
boolean scalar telling ramsort whether to sort increasing or decreasing
- has.na
boolean scalar defining whether the input vector might contain
NA
s. If we know we don't have NAs, this may speed-up. Note that you risk a crash if there are unexpectedNA
s withhas.na=FALSE
- na.last
boolean scalar telling ramsort whether to sort
NA
s last or first. Note that 'boolean' means that there is no third optionNA
as insort()
- stable
boolean scalar defining whether stable sorting is needed. Allowing non-stable may speed-up.
- optimize
by default ramsort optimizes for 'time' which requires more RAM, set to 'memory' to minimize RAM requirements and sacrifice speed
- VERBOSE
cat some info about chosen method
- ...
further arguments, passed from generics, ignored in methods
Examples
x <- as.integer64(sample(c(rep(NA, 9), 1:9), 32, TRUE))
x
#> integer64
#> [1] 9 <NA> 5 1 4 5 <NA> 1 <NA> 1 <NA> <NA> 2 <NA>
#> [15] <NA> 5 2 <NA> 7 7 <NA> <NA> 2 5 <NA> 7 <NA> <NA>
#> [29] <NA> <NA> 2 <NA>
sort(x)
#> integer64
#> [1] 1 1 1 2 2 2 2 4 5 5 5 5 7 7
#> [15] 7 9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
#> [29] <NA> <NA> <NA> <NA>
message("the following has default optimize='time' which is faster but requires more RAM
, this calls 'ramorder'")
#> the following has default optimize='time' which is faster but requires more RAM
#> , this calls 'ramorder'
order.integer64(x)
#> [1] 4 8 10 13 17 23 31 5 3 6 16 24 19 20 26 1 2 7 9 11 12 14 15
#> [24] 18 21 22 25 27 28 29 30 32
message("slower with less RAM, this calls 'ramsortorder'")
#> slower with less RAM, this calls 'ramsortorder'
order.integer64(x, optimize="memory")
#> [1] 4 8 10 13 17 23 31 5 3 6 16 24 19 20 26 1 2 7 9 11 12 14 15
#> [24] 18 21 22 25 27 28 29 30 32