如何使用索引向量从矩阵中提取行?
问题描述:
我有两个矩阵,M1
(6400x6)和M2
(315x3)如何使用索引向量从矩阵中提取行?
M2
是M1
一个子集。我在M2
上做了一些数据插补,现在我想用M2
的行索引从M1
中提取相应的行。我该如何解决这个问题?
由于
答
下面是可能有助于一个例子:
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
这意味着该子集平方米的初始点(左上角,可以这么说)位于所述更大的矩阵内m1在第5行第8列。
我希望这会有所帮助。但是,如果您已经执行了更复杂的修改,并且子集不仅仅是大矩阵的简单矩形集群,并且条目以相同的方式排序,那么我相信您需要提供更多关于构建子矩阵,以获得有用的答案。
你是如何从'M1'中提取'M2'的?这对于继续进行至关重要。 – MichaelChirico