У меня есть дата (dt) со следующими элементами, id предмета, дата и запас в этот день.
ID date Stock
193sd 2016-03-23 12
238ds 2016-04-20 1
238ds 2017-07-20 1
238ds 2018-07-20 1
193sd 2017-09-12 1
193sd 2018-09-12 1
193sd 2018-03-12 1
193sd 2018-05-12 1
Чтобы сохранить 5 месяцев от самого старого дня, я делаю следующее:
dt$date = as.Date(dt$date, origin="1899-12-30")
months5= aux[, .SD[date>= min(date) %m-% months(5)], by = ID]
ID date Stock
193sd 2016-03-23 12
238ds 2016-04-20 1
238ds 2017-07-20 1
238ds 2018-07-20 1
193sd 2017-09-12 1
193sd 2018-09-12 1
193sd 2018-03-12 1
193sd 2018-05-12 1
Но итоговая таблица (месяцы5) имеет те же значения, которые превышают 5 месяцев,
Скажите, пожалуйста, что я делаю неправильно в своей функции.
ОБНОВЛЕНИЕ!: запустив следующий код, предложенный Грегором
months5= dt[, .SD[date<= min(date) %m+% months(5)], by = ID]
ID date Stock
193sd 2016-03-23 12
238ds 2016-04-20 1
193sd 2018-05-12 1
Но все еще между 2016-03-23 и 2018-05-12 в ID 193sd существует более 5 месяцев.