找到矩阵中的第二个最大位置(如max.col)

时间:2018-02-05 13:55:00

标签: r search matrix max

我正试图找出一种方法来找到矩阵每行的第二个最大位置,就像max.col函数那样,但是第二个最高值。 有任何想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试使用-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来正确处理它们。