R - 过滤数据以仅包含日期 X 和后续日期

R - Filter data to only include date X and following date

我的数据结构如下,但有更多的列。

我需要过滤数据以仅包含某人的日期为 X 和 X+1 的实例。

在此示例中,只应保留 B 和 C,并且只保留日期直接相邻的行。所以第2、3、5、6行应该是唯一剩下的。

过滤后,我需要计算发生的次数以及对其他值进行计算,可能对 X+1 日期的值列求和。

Person <- c("A","B","B","B","C","C","D","D")
Date <- c("2021-01-01","2021-01-01","2021-01-02","2021-01-04","2021-01-09","2021-01-10","2021-01-26","2021-01-29")
Values <- c(10,15,6,48,71,3,1,3)

df <- data.frame(Person, Date, Values)
df

我该如何完成?

end_points <- df %>%
  mutate(Date = as.Date(Date)) %>%
  group_by(Person) %>%
  filter(Date -  lag(Date) == 1 | lead(Date) - Date == 1) %>%
  ungroup()

结果

end_points
# A tibble: 4 x 3
  Person Date       Values
  <chr>  <date>      <dbl>
1 B      2021-01-01     15
2 B      2021-01-02      6
3 C      2021-01-09     71
4 C      2021-01-10      3

第二部分:

end_points %>%
  group_by(Person) %>%
  slice_max(Date) %>%
  ungroup() %>%
  summarize(total = sum(Values))