У меня есть код, в котором я запускаю проверку первых строк значения, чтобы вычислить значение покрытия. У меня есть образец кода ниже:
library(data.table)
df <- data.frame(
dept = c(rep('FIREDEPT', 5), rep('WATERDEPT', 5)),
month = 201808:201812,
initial_stock = sample(75884:85347, 10),
variable_predicted = sample(50000:100000, 10))
df <- mutate(df, calculation = ifelse(initial_stock <= (shift(variable_predicted, type="lead", fill = 0)
+ shift(variable_predicted, type="lead", fill = 0, n = 2)
+ shift(variable_predicted, type="lead", fill = 0, n = 3)),
(3 + (initial_stock
- shift(variable_predicted, type="lead", fill = 0)
- shift(variable_predicted, type="lead", fill = 0, n = 2)
) / shift(variable_predicted, type="lead", fill = 0, n = 3)) * 30,
0))
Дело в том, что ведущее значение намного больше, и я должен сделать это в серии ifelses для нескольких формул. Есть ли способ получить результат этой части:
(shift(variable_predicted, type="lead", fill = 0)
+ shift(variable_predicted, type="lead", fill = 0, n = 2)
+ shift(variable_predicted, type="lead", fill = 0, n = 3)),
без использования серии смен?