Чтение кадра данных или значения матрицы, аналогично процессу конвейера в параллельной системе

У меня есть матрица или таблица данных, как показано ниже:

which looks like
   time      node1                 node2               node3
   1         100                  200                  300
   2         101                  245                  329   
   3         90                   245                  350 
   4         129                  320                  290
   5         79                   270                  320

Я хочу прочитать эту матрицу как:

In first run – 1,101,245,290 and assign to some vector
In second run – 2,90,320,320 and assign to some vector.
In third run—3,129,270 and assign to some vector.

Так что на более позднем этапе я могу использовать этот вектор для математического расчета.

Процесс аналогичен конвейеру, где каждый этап выдает выходные данные за такт.

1 ответ

Это даст вам большую часть пути туда. Вы можете индексировать data.frame используя матрицу. Первый столбец указывает на строку, а второй столбец. Похоже, вы хотите создать диагональные векторы

vecs <- lapply(1:3, function(i) df[cbind(pmin(i + 0:3, nrow(df)), 1:4)])

> vecs
[[1]]
[1]   1 101 245 290

[[2]]
[1]   2  90 320 320

[[3]]
[1]   3 129 270 320
Другие вопросы по тегам