我正试图找出一种方法来找到矩阵每行的第二个最大位置,就像max.col函数那样,但是第二个最高值。 有任何想法吗? 谢谢!
答案 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
来正确处理它们。