Mutate (for Time Series Data)
mutate_by_time() is a time-based variant of the popular dplyr::mutate() function
that uses .date_var to specify a date or date-time column and .by to group the
calculation by groups like "5 seconds", "week", or "3 months".
mutate_by_time(
.data,
.date_var,
.by = "day",
...,
.type = c("floor", "ceiling", "round")
).data |
A |
.date_var |
A column containing date or date-time values to summarize. If missing, attempts to auto-detect date column. |
.by |
A time unit to summarise by.
Time units are collapsed using The value can be:
Arbitrary unique English abbreviations as in the |
... |
Name-value pairs. The name gives the name of the column in the output. The value can be:
|
.type |
One of "floor", "ceiling", or "round. Defaults to "floor". See |
A tibble or data.frame
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(timetk)
library(dplyr)
library(tidyr)
# First value in each month
m4_daily_first_by_month_tbl <- m4_daily %>%
group_by(id) %>%
mutate_by_time(
.date_var = date,
.by = "month", # Setup for monthly aggregation
# mutate recycles a single value
first_value_by_month = first(value)
)
m4_daily_first_by_month_tbl
# Visualize Time Series vs 1st Value Each Month
m4_daily_first_by_month_tbl %>%
pivot_longer(value:first_value_by_month) %>%
plot_time_series(date, value, name,
.facet_scale = "free", .facet_ncol = 2,
.smooth = FALSE, .interactive = FALSE)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.