condense_period: Convert the Period to a Lower Periodicity (e.g. Go from Daily...

View source: R/dplyr-condense_period.R

condense_periodR Documentation

Convert the Period to a Lower Periodicity (e.g. Go from Daily to Monthly)


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 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.


A tibble or data.frame

See Also

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

# 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")

timetk documentation built on June 1, 2022, 1:07 a.m.