Skip to contents

This function lets the user automatically create new columns out of a dataframe or vector with date/time variables.

Usage

date_feats(
  dates,
  drop = FALSE,
  only = NA,
  append = FALSE,
  holidays = FALSE,
  country = "Venezuela",
  currency_pair = NA,
  quiet = FALSE
)

Arguments

dates

Vector or dataframe. Non-date/time columns will be automatically ignored/extracted.

drop

Boolean. Should the original date/time columns be kept in the results? Only valid when input is a dataframe.

only

Character or vector. Which columns do you wish to process? If non are explicitly defined, all will be processed

append

Boolean. Append results to existing data.frame? If FALSE, only calculated values will be returned.

holidays

Boolean. Include holidays as new columns?

country

Character or vector. For which countries should the holidays be included?

currency_pair

Character. Which currency exchange do you wish to get the history from? i.e, USD/COP, EUR/USD...

quiet

Boolean. Keep quiet? If not, informative messages will be shown.

Value

data.frame with additional features calculated out of time or date vectors.

Examples

df <- data.frame(
  dates = sample(seq(Sys.Date() - 365, Sys.Date(), by = 1), 50),
  times = sample(seq(Sys.time() - 1e7, Sys.time(), by = 1), 50)
)

# Input as a vector or dataframe
date_feats(df, drop = TRUE, quiet = TRUE) %>% head(10)
#> # A tibble: 10 × 18
#>    dates_year dates_month dates_day dates_week dates_weekday dates_weekend
#>         <dbl>       <dbl>     <int>      <dbl> <chr>         <lgl>        
#>  1       2025           2        24          8 Mon           FALSE        
#>  2       2025          11         8         45 Sat           TRUE         
#>  3       2025           4        11         15 Fri           FALSE        
#>  4       2025          11        15         46 Sat           TRUE         
#>  5       2025          10        19         42 Sun           TRUE         
#>  6       2024          12        21         51 Sat           TRUE         
#>  7       2024          12         2         49 Mon           FALSE        
#>  8       2025          11        24         47 Mon           FALSE        
#>  9       2025           8         6         32 Wed           FALSE        
#> 10       2025           6        24         25 Tue           FALSE        
#> # ℹ 12 more variables: dates_year_day <int>, times_year <dbl>,
#> #   times_month <dbl>, times_day <int>, times_week <dbl>, times_weekday <chr>,
#> #   times_weekend <lgl>, times_year_day <int>, times_hour <int>,
#> #   times_minute <int>, times_minutes <int>, times_second <dbl>

# Holidays given a date range and country
if (FALSE) { # \dontrun{
hol <- date_feats(
  seq(Sys.Date() - 365, Sys.Date(), by = 1),
  holidays = TRUE,
  country = "Venezuela"
)
head(hol[!is.na(hol$holiday_name), ])
} # }