Чтение кадра данных или значения матрицы, аналогично процессу конвейера в параллельной системе
У меня есть матрица или таблица данных, как показано ниже:
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