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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。