我试图用-Inf。
替换每一行的最大值 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))
#Error in replace(mat, cbind(1:5, max.col(mat)), -Inf) :
unused arguments (cbind(1:5, max.col(mat)), -Inf)
我得到了这个错误。
可能是什么问题? 感谢
答案 0 :(得分:0)
可以这样做,用-Inf:
替换每一行的最大值apply(X = mat, MARGIN = 2, FUN = function(x) replace(x, which.max(x), -Inf))
答案 1 :(得分:0)
一些评论:
max.col
,则会使用-Inf
替换每行中的最大值。这样试试这个:
replace(mat, cbind(1:5, max.col(mat)), -Inf)
,并提供:
[,1] [,2] [,3]
[1,] 4 -Inf 2
[2,] 6 10 -Inf
[3,] 8 -Inf 12
[4,] 11 5 -Inf
[5,] 3 1 -Inf