Скажем, у меня есть матрица, например:
> m = matrix(rep(c(0, 0, 1), 4), nrow = 4)
> m
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 0 1 0
[3,] 1 0 0
[4,] 0 0 1
Если я запускаю which
, я получаю список нормальных индексов:
> which(m == 1)
[1] 3 6 9 12
Я хочу получить что-то вродеиндексы матрицы - каждый индекс, содержащий номер строки и столбца:
[,1] [,2]
[1,] 3 1
[2,] 2 2
[3,] 1 3
[4,] 4 3
Есть ли какая-нибудь простая функция для этого? Более того, она должна как-то содержать имена строк и столбцов:
> rownames(m) = letters[1:4]
> colnames(m) = letters[5:7]
> m
e f g
a 0 0 1
b 0 1 0
c 1 0 0
d 0 0 1
но я не знаю, как, например,
[,1] [,2] [,3] [,4]
[1,] 3 1 c e
[2,] 2 2 b f
[3,] 1 3 a g
[4,] 4 3 d g
или, возможно, вернуть 2 вектора (для строк и столбцов), например
c b a d
3 2 1 4
e f g g
1 2 3 3