Извлечение подматриц с подключенными значениями и ограниченным направлением - PullRequest
0 голосов
/ 13 октября 2018

Мой предыдущий вопрос об извлечении подматриц со связанными ячейками был решен.Есть несколько желаемых матриц, содержащих различные группы ячеек, которые необходимо дополнительно вычесть (матрицы с зеленой и красной рамкой на рис.).Логика для вычитания групп в двух желаемых матрицах:

  • желаемые матрицы имеют> = 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...