R:找到具有最小值的Matrix索引

时间:2013-07-09 15:13:07

标签: r

给定矩阵

x <- matrix(c(1,2,3,4), nrow=2, ncol=2)
colnames(x) <- c('a','b')
rownames(x) <- c('c','d')

如何找到最小值的列索引/名称和行索引/名称?

我已经尝试过which.min,但我需要获取行/列索引而不是元素。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

您可以使用which

which(x == min(x), arr.ind = TRUE)

例如:

x <- matrix(c(1, 2, 0, 4), nrow = 2, ncol = 2)
which(x == min(x), arr.ind = TRUE)
##      row col
## [1,]   1   2

答案 1 :(得分:1)

如果您想将矩阵视为矢量,可以使用which.min

which.min(x)
# > [1] 1
which.max(x)
# > [1] 4

成为第一和第四要素。

你也可以找到最大值并返回一个有序的向量w /位置(但不是最小值)

max.col(x)
# [1] 2 2