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


R maxCol 求矩陣中的最大位置


R語言 maxCol 位於 base 包(package)。

說明

找到矩陣每一行的最大位置,隨機打破平局。

用法

max.col(m, ties.method = c("random", "first", "last"))

參數

m

數值矩陣

ties.method

指定如何處理關係的字符串,默認為"random";可以縮寫;查看具體信息'。

細節

ties.method = "random" 時,默認情況下,平局會隨機斷開。在這種情況下,平局的確定假定條目是概率:相對於行中最大的條目(在大小上,省略無窮大),存在 的相對容差。

如果ties.method = "first",max.col返回的列號第一的每行有幾個最大值,與unname(apply(m, 1, which.max))如果m沒有缺失值。
相應地,ties.method = "last"返回最後的可能有幾個指數。

每行最大值的索引,長度為 nrow(m) 的整數向量。

例子

table(mc <- max.col(swiss))  # mostly "1" and "5", 5 x "2" and once "4"
swiss[unique(print(mr <- max.col(t(swiss)))) , ]  # 3 33 45 45 33 6

set.seed(1)  # reproducible example:
(mm <- rbind(x = round(2*stats::runif(12)),
             y = round(5*stats::runif(12)),
             z = round(8*stats::runif(12))))
## Not run: 
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
x    1    1    1    2    0    2    2    1    1     0     0     0
y    3    2    4    2    4    5    2    4    5     1     3     1
z    2    3    0    3    7    3    4    5    4     1     7     5

## End(Not run)
## column indices of all row maxima :
utils::str(lapply(1:3, function(i) which(mm[i,] == max(mm[i,]))))
max.col(mm) ; max.col(mm) # "random"
max.col(mm, "first") # -> 4 6 5
max.col(mm, "last")  # -> 7 9 11

參考

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. New York: Springer (4th ed).

也可以看看

which.max 用於向量。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Find Maximum Position in Matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。