r语言 - 在矩阵中查找第二个最大位置(如 max.col)



我正在尝试找出一种方法来查找矩阵每一行的第二个最大位置,就像max.col函数一样,但对于第二个最高值。有什么想法吗?谢谢!

您可以尝试将最大值替换为 -Inf,然后再次max.col

set.seed(1)
mat <- matrix(sample(1:15), nrow = 5)
#mat
#     [,1] [,2] [,3]
#[1,]    4    9    2
#[2,]    6   10   13
#[3,]    8   14   12
#[4,]   11    5   15
#[5,]    3    1    7

max.col(replace(mat, cbind(1:5, max.col(mat)), -Inf))
#[1] 1 2 3 1 1

使用第二个max.col很方便,因为如果您有领带,您仍然可以使用max.col来适当地处理它们。

最新更新