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       2024           8        14         33 Wed           FALSE        
#>  2       2024           3         2          9 Sat           TRUE         
#>  3       2024           8        30         35 Fri           FALSE        
#>  4       2024          12        19         51 Thu           FALSE        
#>  5       2024           6        14         24 Fri           FALSE        
#>  6       2024          12        12         50 Thu           FALSE        
#>  7       2024          10         3         40 Thu           FALSE        
#>  8       2024          10        18         42 Fri           FALSE        
#>  9       2025           2        16          7 Sun           TRUE         
#> 10       2024           7        19         29 Fri           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) { # \dontrun{
hol <- date_feats(
  seq(Sys.Date() - 365, Sys.Date(), by = 1),
  holidays = TRUE,
  country = "Venezuela"
)
head(hol[!is.na(hol$holiday_name), ])
} # }