提取具有连接值和受限方向的子矩阵

时间:2018-10-13 13:41:11

标签: r matrix

我以前关于question提取具有连接单元的子矩阵的问题已经解决。有一些需要包含不同单元格的矩阵,需要进一步减去(在图上带有绿色和红色边框的矩阵)。 在两个所需矩阵中减去组的逻辑是:

  • 所需矩阵具有> = 3列
  • 从所需矩阵的第一列的第一组行开始(id2 col中的黄色单元格或id5中的红色单元格
  • 在右侧的递增列中选择所有相邻的单元格(id3中的黄色单元格,id6中的红色单元格,然后id7中的红色单元格),并完成所需矩阵(*)的第一个子矩阵。
  • 返回第一列中的下一组行(id2中的绿色单元格或id5中的粉红色单元格),然后对所需矩阵的第二个子矩阵执行(*)。
  • 如此反复,直到第一列中的最后一组行

输出是属于每个子矩阵的单元格坐标的数据帧(由颜色分隔)。

投入:

time <- c(1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43)
id2 <- c(NA,-23.08,-23.08,-23.08,NA,-23.08,NA,NA,NA,NA,-23.08,-23.08,-20.63,-18.03,NA,-16.67,-16.67,-18.03,NA,NA,NA,NA)
id3 <- c(-24.62,NA,NA,NA,NA,NA,-23.08,-23.08,-23.08,-23.08,NA,NA,NA,NA,-18.33,NA,NA,NA,NA,NA,-21.67,-23.33)
id4 <- c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,-6,-6,-2,-23.33,-23.33,NA,NA)
id5 <- c(NA,NA,NA,-10,NA,NA,-10,-10,NA,-4,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
id6 <- c(-10,-10,-10,NA,NA,-10,NA,NA,-10,NA,-10,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
id7 <- c(NA,NA,NA,NA,NA,NA,NA,NA,NA,-6.25,NA,-10,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
df <- data.frame(time, id2, id3, id4, id5, id6, id7)

输出:

row col matrix
1   3   1
2   2   1
3   2   1
4   2   1
1   6   2
2   6   2
3   6   2
4   5   2
6   2   3
7   3   3
8   3   3
9   3   3
10  3   3
11  2   4
12  2   4
13  2   4
14  2   4
15  3   4
16  4   4
17  4   4
18  4   4
19  4   4
20  4   4
16  2   5
17  2   5
18  2   5
21  3   6
22  3   6
6   6   7
7   5   7
8   5   7
9   6   7
10  7   7
10  5   8
11  6   8
12  7   8

谢谢!

enter image description here

0 个答案:

没有答案