
Convert a data.frame
object from daily to monthly,
from minute data to hourly, and more. This allows the user to easily
aggregate data to a less granular level by taking the value from either
the beginning or end of the period.
condense_period(.data, .date_var, .period = "1 day", .side = c("start", "end"))
A tibble
or data.frame
A tbl
object or data.frame
A column containing date or date-time values. If missing, attempts to auto-detect date column.
A period to condense the time series to.
Time units are condensed using lubridate::floor_date()
or lubridate::ceiling_date()
.
The value can be:
second
minute
hour
day
week
month
bimonth
quarter
season
halfyear
year
Arbitrary unique English abbreviations as in the lubridate::period()
constructor are allowed:
"1 year"
"2 months"
"30 seconds"
One of "start" or "end". Determines if the first observation in the period should be returned or the last.
Time-Based dplyr functions:
summarise_by_time()
- Easily summarise using a date column.
mutate_by_time()
- Simplifies applying mutations by time windows.
pad_by_time()
- Insert time series rows with regularly spaced timestamps
filter_by_time()
- Quickly filter using date ranges.
filter_period()
- Apply filtering expressions inside periods (windows)
slice_period()
- Apply slice inside periods (windows)
condense_period()
- Convert to a different periodicity
between_time()
- Range detection for date or date-time sequences.
slidify()
- Turn any function into a sliding (rolling) function
# Libraries
library(dplyr)
# First value in each month
m4_daily %>%
group_by(id) %>%
condense_period(.period = "1 month")
# Last value in each month
m4_daily %>%
group_by(id) %>%
condense_period(.period = "1 month", .side = "end")
Run the code above in your browser using DataLab