1#' Gets the range of values in each row (column) of a matrix 2#' 3#' Gets the range of values in each row (column) of a matrix. 4#' 5#' @inheritParams rowAlls 6#' @inheritParams rowDiffs 7#' 8#' @return \code{rowRanges()} (\code{colRanges()}) returns a 9#' \code{\link[base]{numeric}} Nx2 (Kx2) \code{\link[base]{matrix}}, where N 10#' (K) is the number of rows (columns) for which the ranges are calculated. 11#' 12#' \code{rowMins()/rowMaxs()} (\code{colMins()/colMaxs()}) returns a 13#' \code{\link[base]{numeric}} \code{\link[base]{vector}} of length N (K). 14#' 15#' @author Henrik Bengtsson 16#' 17#' @seealso \code{\link{rowOrderStats}}() and \code{\link[base]{pmin.int}}(). 18#' 19#' @keywords array iteration robust univar 20#' 21#' @export 22rowRanges <- function(x, rows = NULL, cols = NULL, na.rm = FALSE, 23 dim. = dim(x), ..., useNames = NA) { 24 .Call(C_rowRanges, x, dim., rows, cols, 2L, na.rm, TRUE, useNames) 25} 26 27 28#' @rdname rowRanges 29#' @export 30rowMins <- function(x, rows = NULL, cols = NULL, na.rm = FALSE, 31 dim. = dim(x), ..., useNames = NA) { 32 .Call(C_rowRanges, x, dim., rows, cols, 0L, na.rm, TRUE, useNames) 33} 34 35 36#' @rdname rowRanges 37#' @export 38rowMaxs <- function(x, rows = NULL, cols = NULL, na.rm = FALSE, 39 dim. = dim(x), ..., useNames = NA) { 40 .Call(C_rowRanges, x, dim., rows, cols, 1L, na.rm, TRUE, useNames) 41} 42 43 44#' @rdname rowRanges 45#' @export 46colRanges <- function(x, rows = NULL, cols = NULL, na.rm = FALSE, 47 dim. = dim(x), ..., useNames = NA) { 48 .Call(C_colRanges, x, dim., rows, cols, 2L, na.rm, TRUE, useNames) 49} 50 51 52#' @rdname rowRanges 53#' @export 54colMins <- function(x, rows = NULL, cols = NULL, na.rm = FALSE, 55 dim. = dim(x), ..., useNames = NA) { 56 .Call(C_colRanges, x, dim., rows, cols, 0L, na.rm, TRUE, useNames) 57} 58 59 60#' @rdname rowRanges 61#' @export 62colMaxs <- function(x, rows = NULL, cols = NULL, na.rm = FALSE, 63 dim. = dim(x), ..., useNames = NA) { 64 .Call(C_colRanges, x, dim., rows, cols, 1L, na.rm, TRUE, useNames) 65} 66