在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的未使用参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 replace() 时片段未替换

调用 replace() 时片段的生命周期是啥?

片段布局加载延迟

如何使用ById或ByTag在android中获取当前片段

TabLayout 片段问题

如何在 Android 中的特定片段容器中显示片段