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
NAs. If we know we don't have NAs, this may speed-up. Note that you risk a crash if there are unexpectedNAs withhas.na=FALSE- na.last
boolean scalar telling ramsort whether to sort
NAs last or first. Note that 'boolean' means that there is no third optionNAas 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] <NA> 7 7 1 1 <NA> <NA> <NA> 2 <NA> 4 9 2
#> [14] <NA> 3 <NA> 6 <NA> 5 3 6 <NA> <NA> <NA> <NA> 1
#> [27] <NA> 1 5 1 <NA> 2
sort(x)
#> integer64
#> [1] 1 1 1 1 1 2 2 2 3 3 4 5 5
#> [14] 6 6 7 7 9 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
#> [27] <NA> <NA> <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(x)
#> [1] 4 5 26 28 30 9 13 32 15 20 11 19 29 17 21 2 3 12 1 6 7 8
#> [23] 10 14 16 18 22 23 24 25 27 31
message("slower with less RAM, this calls 'ramsortorder'")
#> slower with less RAM, this calls 'ramsortorder'
order(x, optimize="memory")
#> [1] 4 5 26 28 30 9 13 32 15 20 11 19 29 17 21 2 3 12 1 6 7 8
#> [23] 10 14 16 18 22 23 24 25 27 31