在R中单独查找max value的列索引和行索引

问题描述 投票:1回答:2

我发现人们使用

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

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

像matrix =

     [,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

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

r max row
2个回答
0
投票

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

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

0
投票

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

colmax <- {which(mat == max(mat)) %/% nrow(mat)} + 1
rowmax <- which(mat == max(mat)) %% nrow(mat)
© www.soinside.com 2019 - 2024. All rights reserved.