4

给定矩阵

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

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

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

4

2 回答 2

15

您可以使用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
于 2013-07-09T15:17:20.937 回答
1

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

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

作为第一和第四元素。

您还可以找到最大值并返回带有位置的有序向量(但不是最小值)

max.col(x)
# [1] 2 2
于 2013-07-09T15:27:31.783 回答