當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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