| thicken | R Documentation | 
Take the datetime variable in a data frame and map this to a variable of a higher interval. The mapping is added to the data frame in a new variable.
thicken(
  x,
  interval,
  colname = NULL,
  rounding = c("down", "up"),
  by = NULL,
  start_val = NULL,
  drop = FALSE,
  ties_to_earlier = FALSE
)
| x | A data frame containing at least one datetime variable of
class  | 
| interval | The interval of the added datetime variable.
Any character string that would be accepted by  | 
| colname | The column name of the added variable. If  | 
| rounding | Should a value in the input datetime variable be mapped to
the closest value that is lower ( | 
| by | Only needs to be specified when  | 
| start_val | By default the first instance of  | 
| drop | Should the original datetime variable be dropped from the
returned data frame? Defaults to  | 
| ties_to_earlier | By default when the original datetime observations is
tied with a value in the added datetime variable, it is assigned to the
current value when rounding is down or to the next value when rounding
is up. When  | 
When the datetime variable contains missing values, they are left in place in the dataframe. The added column with the new datetime variable, will have a missing values for these rows as well.
See vignette("padr") for more information on thicken.
See vignette("padr_implementation") for detailed information on
daylight savings time, different timezones, and the implementation of
thicken.
The data frame x with the variable added to it.
x_hour <- seq(lubridate::ymd_hms('20160302 000000'), by = 'hour',
              length.out = 200)
some_df <- data.frame(x_hour = x_hour)
thicken(some_df, 'week')
thicken(some_df, 'month')
thicken(some_df, 'day', start_val = lubridate::ymd_hms('20160301 120000'))
library(dplyr)
x_df <- data.frame(
  x = seq(lubridate::ymd(20130101), by = 'day', length.out = 1000) %>%
    sample(500),
  y = runif(500, 10, 50) %>% round) %>%
  arrange(x)
# get the max per month
x_df %>% thicken('month') %>% group_by(x_month) %>%
  summarise(y_max = max(y))
# get the average per week, but you want your week to start on Mondays
# instead of Sundays
x_df %>% thicken('week',
                 start_val = closest_weekday(x_df$x, 2)) %>%
  group_by(x_week) %>% summarise(y_avg = mean(y))
# rounding up instead of down
x <- data.frame(dt = lubridate::ymd_hms('20171021 160000',
                                        '20171021 163100'))
thicken(x, interval = "hour", rounding = "up")
thicken(x, interval = "hour", rounding = "up", ties_to_earlier = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.