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 |
指示是否应删除缺失值的逻辑。 |
细节
max
和 min
返回其参数中存在的所有值的最大值或最小值,如果全部都是 logical
或 integer
则返回 integer
,如果全部都是数字则返回 double
,否则返回字符。
如果na.rm
是FALSE
,任何参数中的NA
值都将导致返回NA
值,否则NA
值将被忽略。
数字空集的最小值和最大值是 +Inf
和 -Inf
(按此顺序!),这确保了传递性,例如 min(x1, min(x2)) == min(x1, x2)
。对于数字 x
max(x) == -Inf
和 min(x) == +Inf
每当 length(x) == 0
时(根据要求删除缺失值后)。但是,如果所有并行元素都是 NA
,则 pmax
和 pmin
返回 NA
,即使对于 na.rm = TRUE
也是如此。
pmax
和 pmin
将一个或多个向量(或矩阵)作为参数,并返回一个向量,给出向量的 ‘parallel’ 最大值(或最小值)。结果的第一个元素是所有参数的第一个元素的最大值(最小值),结果的第二个元素是所有参数的第二个元素的最大值(最小值),依此类推。如有必要,较短的输入(非零长度)将被回收。属性(参见 attributes
:例如 names
或 dim
)从第一个参数复制(如果适用,例如,不适用于 S4
对象)。
pmax.int
和 pmin.int
是更快的内部版本,仅在所有参数都是原子向量并且没有类时使用:它们会删除所有属性。 (请注意,所有版本对于原始向量和复杂向量都失败,因为它们没有顺序。)
max
和 min
是通用函数:可以单独为它们定义方法,也可以通过 Summary
组通用函数定义方法。为了使其正常工作,参数 ...
应该是未命名的,并且调度位于第一个参数上。
根据定义,包含 NaN
的数值向量的最小值/最大值为 NaN
,但包含 NA
的任何向量的最小值/最大值为 NA
,即使它还包含 NaN
。请注意,max(NA, Inf) == NA
,即使最大值为Inf
,无论缺失值实际是什么。
字符版本按字典顺序排序,这取决于所使用的语言环境的整理顺序:“Comparison”的帮助提供了详细信息。空字符向量的最大值/最小值定义为字符 NA
。 (有人可能会说,由于 ""
是最小的字符元素,因此最大值应该是 ""
,但没有明显的最小值候选。)
值
对于 min
或 max
,长度为 1 的向量。对于 pmin
或 pmax
,长度为输入向量中最长的向量,如果输入之一的长度为零,则长度为零。
结果的类型将是层次结构中最高输入的类型整数<双精度<字符。
对于 min
和 max
,如果只有数字输入并且全部为空(可能删除 NA
后),则结果为双精度( Inf
或 -Inf
)。
S4方法
max
和min
是S4 Summary
组通用的一部分。它们的方法必须使用签名 x, ..., na.rm
。
注意
“数字”参数是整数和数字类型的向量,以及逻辑(强制为整数)。由于历史原因, NULL
被认为等同于 integer(0)
。
pmax
和 pmin
也适用于具有适当比较方法的分类 S3 或 S4 对象,is.na
和 rep
(如果需要回收参数)。
例子
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 Extract 提取或替换对象的部分
- R Extract.factor 提取或替换部分因子
- R Extract.data.frame 提取或替换 DataFrame 的部分内容
- R Encoding 读取或设置字符向量声明的编码
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
- R icuSetCollate 按 ICU 设置整理
- R search 给出 R 对象的搜索路径
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Maxima and Minima。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。