Получить имя строки и столбца минимального элемента матрицы - PullRequest
33 голосов
/ 17 ноября 2010

Мне нужно получить имя строки и столбца наименьшего элемента матрицы

> mat = matrix(data=runif(12), nrow = 4, ncol=4)
> rownames(mat) = colnames(mat) = letters[1:4]
> 
> mat
  a         b         c         d
a 0.3167865 0.6958895 0.4233572 0.3167865
b 0.1042599 0.1552235 0.8461520 0.1552235
c 0.6286461 0.9749868 0.2390978 0.6286461
d 0.5923721 0.7823673 0.8427426 0.5923721
> min = min(mat)
> min
> 0.1042599

В этом примере я хотел бы получить "a" и "b"

1 Ответ

41 голосов
/ 17 ноября 2010
> inds = which(mat == min(mat), arr.ind=TRUE)
> inds
  row col
a   1   2
> rnames = rownames(mat)[inds[,1]]
> cnames = colnames(mat)[inds[,2]]

Это даст вам имена строк / столбцов для каждой записи, равной минимальному значению;если вам нужен только первый, вы можете проверить только inds [1,1] и inds [1,2].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...