Матричные индексы, которые удовлетворяют условию - PullRequest
1 голос
/ 06 февраля 2020

У меня есть матрица, которая выглядит следующим образом

myMatrix <- matrix(data = TRUE, nrow = 3, ncol = 3)
myMatrix[as.matrix(expand.grid(1:2, 1:2))] <- FALSE

myMatrix

      [,1]  [,2] [,3]
[1,] FALSE FALSE TRUE
[2,] FALSE FALSE TRUE
[3,]  TRUE  TRUE TRUE

, и я хотел бы получить фрейм данных или матрицу, в которой перечислены все индексы строк и столбцов, где myMatrix равно TRUE:

  column row
1      3   1
2      3   2
3      1   3
4      2   3
5      3   3

Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 06 февраля 2020

Мы можем использовать which

which(myMatrix, arr.ind = TRUE)

Или с помощью arrayInd и указать .dims

1 голос
/ 06 февраля 2020

Мы могли бы использовать row и col, чтобы получить индекс строки и столбца каждого элемента в матрице и поднастроить значения TRUE, используя логические значения myMatrix.

data.frame(column = col(myMatrix)[myMatrix], row = row(myMatrix)[myMatrix])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...