#r #lubridate
#r #lubridate
Вопрос:
У меня есть следующие данные:
Customer <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
Invoice <- c(100:134)
Invoice.Date <- c('20200223','20200226','20200301','20200314','20200314','20200401','20200405','20200302','20200604','20201103','20201012','20200710','20200804','20200813','20200912','20201001','20201030','20201031','20201101','20201014','20200915','20200213','20200304','20201003','20200505','20200617','20200520','20201005','20200403','20200303','20200915','20201003','20201101','20201001','20200901')
invoices <- data.frame(Customer, Invoice, Invoice.Date)
Я знаю, как получить ежемесячный счет-фактуру как таковую
invoices %>%
group_by(month = floor_date(as.Date(as.character(Invoice.Date), "%Y%m%d"), "month")) %>%
count(Customer, name = "monthly") %>%
pivot_wider(names_from = month, values_from = monthly)
Однако я хотел бы получить подсчет на основе «предыдущего месячного периода» на основе последней даты выставления счета.
Таким образом, в последнем столбце должно быть 10/24 — 11/23, в предыдущем — 9/24 — 10/23 и т. Д. У меня есть несколько медленных идей, есть ли что-то более быстрое в lubridate или в другом месте?
Комментарии:
1. Можете ли вы показать ожидаемый результат
2. Почему периоды прерываются 24 числа месяца?