Rev 49913 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/Extremes.Rd% Part of the R package, http://www.R-project.org% Copyright 1995-2007 R Core Development Team% Distributed under GPL 2 or later\name{Extremes}\alias{max}\alias{min}\alias{pmax}\alias{pmin}\alias{pmax.int}\alias{pmin.int}\title{Maxima and Minima}\description{Returns the (parallel) maxima and minima of the input values.}\usage{max(\dots, na.rm = FALSE)min(\dots, na.rm = FALSE)pmax(\dots, na.rm = FALSE)pmin(\dots, na.rm = FALSE)pmax.int(\dots, na.rm = FALSE)pmin.int(\dots, na.rm = FALSE)}\arguments{\item{\dots}{numeric or character arguments (see Note).}\item{na.rm}{a logical indicating whether missing values should beremoved.}}\details{\code{max} and \code{min} return the maximum or minimum of \emph{all}the values present in their arguments, as \code{\link{integer}} ifall are \code{logical} or \code{integer}, as \code{\link{double}} ifall are numeric, and character otherwise.If \code{na.rm} is \code{FALSE} an \code{NA} value in any of thearguments will cause a value of \code{NA} to be returned, otherwise\code{NA} values are ignored.The minimum and maximum of a numeric empty set are \code{+Inf} and\code{-Inf} (in this order!) which ensures \emph{transitivity}, e.g.,\code{min(x1, min(x2)) == min(x1, x2)}. For numeric \code{x}\code{max(x) == -Inf} and \code{min(x) == +Inf}whenever \code{length(x) == 0} (after removing missing values ifrequested). However, \code{pmax} and \code{pmin} return\code{NA} if all the parallel elements are \code{NA} even for\code{na.rm = TRUE}.\code{pmax} and \code{pmin} take one or more vectors (or matrices) asarguments and return a single vector giving the \sQuote{parallel}maxima (or minima) of the vectors. The first element of the result isthe maximum (minimum) of the first elements of all the arguments, thesecond element of the result is the maximum (minimum) of the secondelements of all the arguments and so on. Shorter inputs are recycledif necessary. \code{\link{attributes}} (such as \code{\link{names}} or\code{\link{dim}}) are transferred from the first argument (ifapplicable).\code{pmax.int} and \code{pmin.int} are faster internal versions onlyused when all arguments are atomic vectors and there are no classes:they drop all attributes. (Note that all versions fail for raw andcomplex vectors since these have no ordering.)\code{max} and \code{min} are generic functions: methods can bedefined for them individually or via the\code{\link[=S3groupGeneric]{Summary}} group generic. For this towork properly, the arguments \code{\dots} should be unnamed, anddispatch is on the first argument.By definition the min/max of a numeric vector containing an \code{NaN}is \code{NaN}, except that the min/max of any vector containing an\code{NA} is \code{NA} even if it also contains an \code{NaN}. Notethat \code{max(NA, Inf) == NA} even though the maximum would be\code{Inf} whatever the missing value actually is.Character versions are sorted lexicographically, and this depends onthe collating sequence of the locale in use: the help for\sQuote{\link{Comparison}} gives details. The max/min of an emptycharacter vector is defined to be a character \code{NA}. (One couldargue that as \code{""} is the smallest character element, the maximumshould be \code{""}, but there is no obvious candidate for theminimum.)}\value{For \code{min} or \code{max}, a length-one vector. For \code{pmin} or\code{pmax}, a vector of length the longest of the input vectors.The type of the result will be that of the highest of the inputs inthe hierarchy integer < real < character.For \code{min} and \code{max} if there are only numeric inputs and allare empty (after possible removal of \code{NA}s), the result is double(\code{Inf} or \code{-Inf}).}\section{S4 methods}{\code{max} and \code{min} are part of the S4\code{\link[=S4groupGeneric]{Summary}} group generic. Methodsfor them must use the signature \code{x, \dots, na.rm}.}\references{Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)\emph{The New S Language}.Wadsworth & Brooks/Cole.}\note{\sQuote{Numeric} arguments are vectors of type integer and numeric,and logical (coerced to integer). For historical reasons, \code{NULL}is accepted as equivalent to \code{integer(0)}.% PR#1283\code{pmax} and \code{pmin} will also work on classed objects withappropriate methods for comparison, \code{is.na} and \code{rep} (ifrecycling of arguments is needed).}\seealso{\code{\link{range}} (\emph{both} min and max) and\code{\link{which.min}} (\code{which.max}) for the \emph{arg min},i.e., the location where an extreme value occurs.\sQuote{\link{plotmath}} for the use of \code{min} in plot annotation.}\examples{require(stats); require(graphics)min(5:1, pi) #-> one numberpmin(5:1, pi) #-> 5 numbersx <- sort(rnorm(100)); cH <- 1.35pmin(cH, quantile(x)) # no namespmin(quantile(x), cH) # has namesplot(x, pmin(cH, pmax(-cH, x)), type='b', main= "Huber's function")}\keyword{univar}\keyword{arith}