当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R Extremes 最大值和最小值


R语言 Extremes 位于 base 包(package)。

说明

返回输入值的(常规或并行)最大值和最小值。

pmax*()pmin*() 将一个或多个向量作为参数,将它们回收到公共长度并返回一个向量,给出参数向量的 ‘parallel’ 最大值(或最小值)。

用法

max(..., na.rm = FALSE)
min(..., na.rm = FALSE)

pmax(..., na.rm = FALSE)
pmin(..., na.rm = FALSE)

pmax.int(..., na.rm = FALSE)
pmin.int(..., na.rm = FALSE)

参数

...

数字或字符参数(参见注释)。

na.rm

指示是否应删除缺失值的逻辑。

细节

maxmin 返回其参数中存在的所有值的最大值或最小值,如果全部都是 logicalinteger 则返回 integer ,如果全部都是数字则返回 double ,否则返回字符。

如果na.rmFALSE,任何参数中的NA 值都将导致返回NA 值,否则NA 值将被忽略。

数字空集的最小值和最大值是 +Inf-Inf (按此顺序!),这确保了传递性,例如 min(x1, min(x2)) == min(x1, x2) 。对于数字 x max(x) == -Infmin(x) == +Inf 每当 length(x) == 0 时(根据要求删除缺失值后)。但是,如果所有并行元素都是 NA,则 pmaxpmin 返回 NA,即使对于 na.rm = TRUE 也是如此。

pmaxpmin 将一个或多个向量(或矩阵)作为参数,并返回一个向量,给出向量的 ‘parallel’ 最大值(或最小值)。结果的第一个元素是所有参数的第一个元素的最大值(最小值),结果的第二个元素是所有参数的第二个元素的最大值(最小值),依此类推。如有必要,较短的输入(非零长度)将被回收。属性(参见 attributes :例如 namesdim )从第一个参数复制(如果适用,例如,不适用于 S4 对象)。

pmax.intpmin.int 是更快的内部版本,仅在所有参数都是原子向量并且没有类时使用:它们会删除所有属性。 (请注意,所有版本对于原始向量和复杂向量都失败,因为它们没有顺序。)

maxmin 是通用函数:可以单独为它们定义方法,也可以通过 Summary 组通用函数定义方法。为了使其正常工作,参数 ... 应该是未命名的,并且调度位于第一个参数上。

根据定义,包含 NaN 的数值向量的最小值/最大值为 NaN ,但包含 NA 的任何向量的最小值/最大值为 NA,即使它还包含 NaN 。请注意,max(NA, Inf) == NA,即使最大值为Inf,无论缺失值实际是什么。

字符版本按字典顺序排序,这取决于所使用的语言环境的整理顺序:“Comparison”的帮助提供了详细信息。空字符向量的最大值/最小值定义为字符 NA 。 (有人可能会说,由于 "" 是最小的字符元素,因此最大值应该是 "" ,但没有明显的最小值候选。)

对于 minmax ,长度为 1 的向量。对于 pminpmax ,长度为输入向量中最长的向量,如果输入之一的长度为零,则长度为零。

结果的类型将是层次结构中最高输入的类型整数<双精度<字符。

对于 minmax,如果只有数字输入并且全部为空(可能删除 NA 后),则结果为双精度( Inf-Inf )。

S4方法

maxmin 是S4 Summary 组通用的一部分。它们的方法必须使用签名 x, ..., na.rm

注意

“数字”参数是整数和数字类型的向量,以及逻辑(强制为整数)。由于历史原因, NULL 被认为等同于 integer(0)

pmaxpmin 也适用于具有适当比较方法的分类 S3 或 S4 对象,is.narep(如果需要回收参数)。

例子

require(stats); require(graphics)
 min(5:1, pi) #-> one number
pmin(5:1, pi) #->  5  numbers

x <- sort(rnorm(100));  cH <- 1.35
pmin(cH, quantile(x)) # no names
pmin(quantile(x), cH) # has names
plot(x, pmin(cH, pmax(-cH, x)), type = "b", main =  "Huber's function")

cut01 <- function(x) pmax(pmin(x, 1), 0)
curve(      x^2 - 1/4, -1.4, 1.5, col = 2)
curve(cut01(x^2 - 1/4), col = "blue", add = TRUE, n = 500)
## pmax(), pmin() preserve attributes of *first* argument
D <- diag(x = (3:1)/4) ; n0 <- numeric()
stopifnot(identical(D,  cut01(D) ),
          identical(n0, cut01(n0)),
          identical(n0, cut01(NULL)),
          identical(n0, pmax(3:1, n0, 2)),
          identical(n0, pmax(n0, 4)))

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

range(最小值和最大值)和 which.min (which.max) 表示 arg min,即出现极值的位置。

plotmath’用于在绘图注释中使用min

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Maxima and Minima。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。