在R中使用Replace的未使用参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中使用Replace的未使用参数相关的知识,希望对你有一定的参考价值。
我试图用-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)
我得到那个错误。
可能是什么问题?谢谢
答案
可以这样做,用-Inf替换每行的最大值:
apply(X = mat, MARGIN = 2, FUN = function(x) replace(x, which.max(x), -Inf))
另一答案
一些评论:
- 显示的代码不会产生错误消息,而是返回一个每行有一个元素的向量,这样第i个元素就是该行中第二大元素的列号。
- 如果你删除外部
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
以上是关于在R中使用Replace的未使用参数的主要内容,如果未能解决你的问题,请参考以下文章