Я пытаюсь агрегировать дату по типу по времени, учитывая изменения, произошедшие в течение всего периода времени для локальных min_date и max_date для каждого интервала времени.
id type date
1 A 2019-01-01
1 A 2019-01-02
1 B 2019-01-03
1 B 2019-01-04
2 A 2019-01-01
2 A 2019-01-02
2 B 2019-01-03
2 A 2019-01-04
Код:
df <- data.frame(id = c(1, 1, 1, 1, 2, 2, 2, 2), type = c("A", "A", "B", "B", "A", "A", "B", "C"), date = as.Date(c("2019-01-01", "2019-01-02", "2019-01-03", "2019-01-04", "2019-01-01", "2019-01-02", "2019-01-03", "2019-01-04"), "%Y-%m-%d"))
Результат, который я пытаюсь получить:
id type min_date max_date
1 A 2019-01-01 2019-01-02
1 B 2019-01-03 2019-01-04
2 A 2019-01-01 2019-01-02
2 B 2019-01-03 2019-01-03
2 A 2019-01-04 2019-01-04
Я устал от следующего кода, но он показывает только глобальные min_date и max_date - без учета изменений во времени:
library(dplyr)
df_changes <- df %>% group_by(id, type) %>% summarise(listings = n(), min_date = min(date), max_date = max(date))