library("matrixStats")
library("utils") ## utils::str
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Local functions
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
psortKM_R <- function(x, k, m) {
x <- sort(x)
x[(k - m + 1):k]
}
psortKM_R2 <- function(x, k, m) {
partial <- (k - m + 1):k
x <- sort.int(x, partial = partial)
x[partial]
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Consistency checks
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set.seed(1)
cat("Consistency checks:\n")
x <- 1:30
x[18:20] <- 20
y <- sample(x)
cat("x:\n")
str(x)
cat("sample(x):\n")
str(y)
for (k in c(1L, 2L, 20L, 21L, length(x))) {
for (m in 1:min(5L, k)) {
px0 <- psortKM_R(x, k = k, m = m)
px0b <- psortKM_R2(x, k = k, m = m)
stopifnot(identical(px0b, px0))
px1 <- matrixStats:::.psortKM(x, k = k, m = m)
cat(sprintf(".psortKM(x, k = %d, m = %d):\n", k, m))
print(px1)
stopifnot(identical(px1, px0))
py0 <- psortKM_R(y, k = k, m = m)
py0b <- psortKM_R2(y, k = k, m = m)
stopifnot(identical(py0b, py0))
py1 <- matrixStats:::.psortKM(y, k = k, m = m)
cat(sprintf(".psortKM(y, k = %d, m = %d):\n", k, m))
print(py1)
stopifnot(identical(py1, py0))
stopifnot(identical(py1, px1))
} # for (m ...)
} # for (k ...)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.