我有两个矩阵,M1
(6400x6)和M2
(315x3)
M2
是M1
的子集。我在M2
上做了一些数据插补,现在我想使用M2
的行索引从M1
中提取相应的行。我该如何处理?
由于
答案 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内。
我希望这会有所帮助。但是,如果您执行了更复杂的修改,并且子集不仅仅是大矩阵的简单矩形簇,并且条目以相同方式排序,那么我相信您需要提供有关构建子矩阵以获得有用的答案。