【问题标题】:find max value's column index and row index individually in R在R中分别查找最大值的列索引和行索引
【发布时间】:2018-03-02 20:53:04
【问题描述】:

我发现人们使用

which(matrix==max(matrix, na.rm=FALSE)) 

同时显示行和列索引。 但我的问题是如何分别提取行索引和列索引,然后将这两个值返回到另一个参数中?

喜欢矩阵=

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    3    6    7    7    2    4    3    7    1     4
[2,]    1    9    8    7    2    6   10    9    5     2
[3,]    7   10    8    4   10    5    4    8    4     4
[4,]    4    3    1    1    3    3    9    7    4     2
[5,]    1    8    1    9    9    8    1    3    7     7
[6,]    2    6    7    5    6   10    4    6   15     1

最大值是 matrix[6,9]=15 我怎么能分别找到 row =6 和 column = 9 并将 6 返回到参数:A,9 到参数:B 非常感谢你们。

【问题讨论】:

  • 只要使用d=which(matrix==max(matrix, na.rm=F),T); rowmax=c(d)[1];colmax=c(d)[1]
  • 我认为应该是 colmax=c(d)[2] ?非常感谢。
  • 你说得对

标签: r max row


【解决方案1】:

对于大矩阵which.max 应该比which 更有效。所以,对于矩阵m,我们可以使用

A = row(m)[d <- which.max(m)]
B = col(m)[d] 

【讨论】:

  • 此代码有效。但是当我输入 print(which.max(m)) 时,输出是 99,d 也是 99...
【解决方案2】:

也许是一种迂回的方式,但如果矩阵被称为“垫子”:

colmax <- {which(mat == max(mat)) %/% nrow(mat)} + 1
rowmax <- which(mat == max(mat)) %% nrow(mat)

【讨论】:

    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多