如何使用索引向量从矩阵中提取行?

时间:2015-07-10 18:25:18

标签: r subset

我有两个矩阵,M1(6400x6)和M2(315x3)

M2M1的子集。我在M2上做了一些数据插补,现在我想使用M2的行索引从M1中提取相应的行。我该如何处理?

由于

1 个答案:

答案 0 :(得分:0)

以下是一个可能有用的示例:

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的初始点(左上角,也就是说)位于第5行第8列的较大矩阵m1内。

我希望这会有所帮助。但是,如果您执行了更复杂的修改,并且子集不仅仅是大矩阵的简单矩形簇,并且条目以相同方式排序,那么我相信您需要提供有关构建子矩阵以获得有用的答案。