R/bitsort.R
range_sortna.RdIn one pass over the vector NAs are treated according to parameter
na.last exactly like sort() does, the range(),
number of NAs and unsortedness is determined.
range_sortna(x, decreasing = FALSE, na.last = NA)an integer vector with NAs are treated and an attribute range_na() with
four elements:
min integer
max integer
number of NAs
0 for sorted vector and 1 for is.unsorted()
range_sortna(c(0L, 1L, NA, 2L))
#> [1] 0 1 2
#> attr(,"range_sortna")
#> [1] 0 2 0 0
range_sortna(c(2L, NA, 1L, 0L))
#> [1] 2 1 0
#> attr(,"range_sortna")
#> [1] 0 2 0 1
range_sortna(c(0L, 1L, NA, 2L), na.last=TRUE)
#> [1] 0 1 2 NA
#> attr(,"range_sortna")
#> [1] 0 2 1 0
range_sortna(c(2L, NA, 1L, 0L), na.last=TRUE)
#> [1] 2 1 0 NA
#> attr(,"range_sortna")
#> [1] 0 2 1 1
range_sortna(c(0L, 1L, NA, 2L), na.last=FALSE)
#> [1] NA 0 1 2
#> attr(,"range_sortna")
#> [1] 0 2 1 0
range_sortna(c(2L, NA, 1L, 0L), na.last=FALSE)
#> [1] NA 2 1 0
#> attr(,"range_sortna")
#> [1] 0 2 1 1