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. Quiet all messages?

Value

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

See also

Other Data Wrangling: balance_data(), categ_reducer(), cleanText(), date_cuts(), file_name(), formatHTML(), holidays(), impute(), left(), normalize(), num_abbr(), ohe_commas(), ohse(), quants(), removenacols(), replaceall(), replacefactor(), textFeats(), textTokenizer(), vector2text(), year_month(), zerovar()

Other Feature Engineering: holidays(), ohse()

Other One Hot Encoding: holidays(), ohe_commas(), ohse()

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) %>% head(10)
#> >>> Processing 2 date/time columns: 'dates', 'times'
#> Warning: argument 'pattern' has length > 1 and only the first element will be used
#> # A tibble: 10 × 14
#>    dates_year dates_month dates_day dates_week dates_weekday dates_weekend
#>         <dbl>       <dbl>     <int>      <dbl> <chr>         <lgl>        
#>  1       2023           9         2         35 Sat           TRUE         
#>  2       2023           3        21         12 Tue           FALSE        
#>  3       2023           9        18         38 Mon           FALSE        
#>  4       2024           1         7          1 Sun           TRUE         
#>  5       2023           7         3         27 Mon           FALSE        
#>  6       2023          12        31         53 Sun           TRUE         
#>  7       2023          10        22         43 Sun           TRUE         
#>  8       2023          11         6         45 Mon           FALSE        
#>  9       2024           3         6         10 Wed           FALSE        
#> 10       2023           8         7         32 Mon           FALSE        
#> # ℹ 8 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>

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