我正在尝试找出一种方法来查找矩阵每一行的第二个最大位置,就像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
来适当地处理它们。