У меня есть фрейм данных, который выглядит следующим образом (короткий пример):
df
date (dd-mm-yyyy)
date1 date2 Value
01-01-2016 01-01-2016 100
01-02-2016 01-01-2016 90
01-03-2016 01-01-2016 110
01-02-2016 01-02-2016 180
01-03-2016 01-02-2016 80
01-04-2016 01-02-2016 100
01-05-2016 01-02-2016 70
01-03-2016 01-03-2016 90
01-04-2016 01-03-2016 100
01-05-2016 01-03-2016 80
Я хочу создать новый столбец на основе следующих критериев: если date1 = date2 (например, 01-02-2016 = 01-02-2016) мне нужно поместить в новый столбец «Value_new» значение из столбца «Value» из строки, где date1 = date2 - один месяц (например, 01-02-2016 = 01-01-2016). В случае, если для date1 = date2 нет значения - один месяц доступен, новое значение должно быть равно 0.
Вывод должен быть таким:
date1 date2 Value Value_new
01-01-2016 01-01-2016 100 0
01-02-2016 01-01-2016 90 0
01-03-2016 01-01-2016 110 0
01-02-2016 01-02-2016 180 90
01-03-2016 01-02-2016 80 0
01-04-2016 01-02-2016 100 0
01-05-2016 01-02-2016 70 0
01-03-2016 01-03-2016 90 80
01-04-2016 01-03-2016 100 0
01-05-2016 01-03-2016 80 0
Я пытался решить это с помощью следующего кода, но он не работает должным образом:
df$Value_new <- 0
df$Value_new[df$date1==df$date2] <- df$Value[(df$date1 == (df$date2 - months(1))]
Я новичок в программировании на R и буду благодарен за каждое предложение.