library(lubridate)
library(tidyverse)
df1 <- data.frame(timestamp = structure(c(1540505400, 1539802080, 1538778660, 1538417640, 1538691660,
1538790780, 1538705100, 1539614520, 1539893280, 1539455520, 1540343580,
1540178220, 1538628960, 1539533280, 1539572700, 1538823480, 1538967480,
1538468400, 1540425600, 1539809880), class = c("POSIXct", "POSIXt"
), tzone = ""))
Первая часть дня и часа:
df1$day <- weekdays(df1$timestamp)
df1$hour <- hour(df1$timestamp)
Затем отфильтруйте наши три дня, затем исключите часы начала и окончания понедельника / среды:
df1 <- df1 %>% filter(day %in% c("Monday", "Tuesday", "Wednesday")) %>%
filter(!(day == "Monday" & hour < 10)) %>%
filter(!(day == "Wednesday" & hour > 12))
df1$week <- week(df1$timestamp)
Затем используйте week
в качестве группы:
df1 %>% group_by(week) %>% summarize(count = n())
# A tibble: 3 x 2
week count
<int> <int>
1 40 2
2 42 1
3 43 1