Сложный алгоритм в R с data.tables, использующим значения предыдущих строк

У меня есть данные в виде таблицы данных, приведенной ниже.

structure(list(atp = c(1, 0, 1, 0, 0, 1), len = c(2, NA, 3, NA, 
NA, 1), inv = c(593, 823, 668, 640, 593, 745), GU = c(36, 94, 
57, 105, 48, 67), RUTL = c(100, NA, 173, NA, NA, 7)), .Names = c("atp", 
"len", "inv", "GU", "RUTL"), row.names = c(NA, -6L), class = c("data.table", 
"data.frame"), .internal.selfref = )

Мне нужно сформировать 4 новых столбца csi_begin, csi_end, IRQ и csi_order. значение csi_begin и csi_end при atp = 1 напрямую зависит от значений inv и gu.

Но когда atp не равно 1 csi_begin и csi_end зависит от значений inv и gu и значения IRQ предыдущей строки. Значение IRQ зависит от csi_order этой строки, если atp == 1, иначе его 0 и значение csi_order зависят от двух предыдущих строк csi_begin. значение.

Я написал условие с помощью цикла for. Ниже приведен код

lostsales

Ответы на вопрос(1)

Ваш ответ на вопрос