Мой предыдущий вопрос об извлечении подматриц со связанными ячейками был решен.Есть несколько желаемых матриц, содержащих различные группы ячеек, которые необходимо дополнительно вычесть (матрицы с зеленой и красной рамкой на рис.).Логика для вычитания групп в двух желаемых матрицах:
- желаемые матрицы имеют> = 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
Спасибо!
