Как использовать вектор индексов для извлечения строк из матрицы?
У меня есть две матрицы, 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.
Надеюсь, это поможет. Однако, если вы выполнили более сложные модификации, а подмножество - это не просто прямоугольный кластер большой матрицы с записями, упорядоченными таким же образом, то я считаю, что вам потребуется предоставить больше информации о том, что вы сделали для построения подматрица, чтобы получить полезный ответ.