Как использовать вектор индексов для извлечения строк из матрицы?

У меня есть две матрицы, M1 (6400x6) и M2 (315x3)

M2 это подмножество M1, Я сделал некоторые вменения данных на M2 и теперь я хотел бы использовать M2индексы строк для извлечения соответствующих строк из M1, Как я могу подойти к этому?

Спасибо

1 ответ

Решение

Вот пример, который может помочь:

m1 <- matrix(runif(5000),ncol=50) #define a large matrix with random numbers
m2 <- m1[5:17,8:30] #create a subset starting from index [5,8]
#How to retrieve the information on the location of m2 within m1:
idx <- which(m1 %in% m2, arr.ind = TRUE)[1]
rownum <- idx %% nrow(m1)
colnum <- ceiling(idx / nrow(m1))
#> rownum
#[1] 5
#> colnum
#[1] 8

Это означает, что начальная точка подмножества m2 (так сказать, верхнего левого угла) находится в пределах большей матрицы m1 в строке 5, столбец 8.

Надеюсь, это поможет. Однако, если вы выполнили более сложные модификации, а подмножество - это не просто прямоугольный кластер большой матрицы с записями, упорядоченными таким же образом, то я считаю, что вам потребуется предоставить больше информации о том, что вы сделали для построения подматрица, чтобы получить полезный ответ.

Другие вопросы по тегам