当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R recipes step_date 日期特征生成器


step_date() 创建配方步骤的规范,该步骤将日期数据转换为一个或多个因子或数值变量。

用法

step_date(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  features = c("dow", "month", "year"),
  abbr = TRUE,
  label = TRUE,
  ordinal = FALSE,
  locale = clock::clock_locale()$labels,
  columns = NULL,
  keep_original_cols = TRUE,
  skip = FALSE,
  id = rand_id("date")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

...

一个或多个选择器函数用于为此步骤选择变量。所选变量应具有类 DatePOSIXct 。有关更多详细信息,请参阅selections()

role

对于此步骤创建的模型项,应为其分配什么分析角色?默认情况下,此步骤根据原始变量创建的新列将用作模型中的预测变量。

trained

指示预处理数量是否已估计的逻辑。

features

至少包含以下值之一的字符串: monthdow (星期几)、 doy (一年中的某一天)、 weekmonthdecimal (十进制日期、例如 2002.197)、quartersemesteryear

abbr

一个合乎逻辑的。仅适用于函数 monthdowFALSE 会将星期几显示为字符串的有序因子,例如"Sunday"。 TRUE 将显示标签的缩写版本,例如"Sun"。如果 label = FALSE 则忽略 abbr

label

一个合乎逻辑的。仅适用于函数 monthdowTRUE 会将星期几显示为字符串的有序因子,例如 "Sunday." FALSE 会将星期几显示为数字。

ordinal

逻辑:因子应该排序吗?仅适用于函数 monthdow

locale

用于 monthdow 的区域设置,请参阅 locales 。在 Linux 系统上,您可以使用 system("locale -a") 列出所有已安装的区域设置。可以是区域设置字符串,也可以是 clock::clock_labels() 对象。默认为 clock::clock_locale()$labels

columns

所选变量名称的字符串。该字段是一个占位符,一旦使用 prep() 就会被填充。

keep_original_cols

将原始变量保留在输出中的逻辑。默认为 TRUE

skip

一个合乎逻辑的。当bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算。

id

该步骤特有的字符串,用于标识它。

recipe 的更新版本,将新步骤添加到任何现有操作的序列中。

细节

与其他一些步骤不同,step_date 默认情况下不会删除原始日期变量。将 keep_original_cols 设置为 FALSE 以删除它们。

如果您想计算小于天的特征,请参阅step_time()

整理

当您 tidy() 此步骤时,将返回包含 terms(选择的选择器或变量)、value(函数名称)和 ordinal(逻辑)列的 tibble。

箱重

底层操作不允许使用案例权重。

例子

library(lubridate)
#> 
#> Attaching package: ‘lubridate’
#> The following objects are masked from ‘package:base’:
#> 
#>     date, intersect, setdiff, union

examples <- data.frame(
  Dan = ymd("2002-03-04") + days(1:10),
  Stefan = ymd("2006-01-13") + days(1:10)
)
date_rec <- recipe(~ Dan + Stefan, examples) %>%
  step_date(all_predictors())

tidy(date_rec, number = 1)
#> # A tibble: 3 × 4
#>   terms            value ordinal id        
#>   <chr>            <chr> <lgl>   <chr>     
#> 1 all_predictors() dow   FALSE   date_vUNsj
#> 2 all_predictors() month FALSE   date_vUNsj
#> 3 all_predictors() year  FALSE   date_vUNsj

date_rec <- prep(date_rec, training = examples)

date_values <- bake(date_rec, new_data = examples)
date_values
#> # A tibble: 10 × 8
#>    Dan        Stefan     Dan_dow Dan_month Dan_year Stefan_dow
#>    <date>     <date>     <fct>   <fct>        <int> <fct>     
#>  1 2002-03-05 2006-01-14 Tue     Mar           2002 Sat       
#>  2 2002-03-06 2006-01-15 Wed     Mar           2002 Sun       
#>  3 2002-03-07 2006-01-16 Thu     Mar           2002 Mon       
#>  4 2002-03-08 2006-01-17 Fri     Mar           2002 Tue       
#>  5 2002-03-09 2006-01-18 Sat     Mar           2002 Wed       
#>  6 2002-03-10 2006-01-19 Sun     Mar           2002 Thu       
#>  7 2002-03-11 2006-01-20 Mon     Mar           2002 Fri       
#>  8 2002-03-12 2006-01-21 Tue     Mar           2002 Sat       
#>  9 2002-03-13 2006-01-22 Wed     Mar           2002 Sun       
#> 10 2002-03-14 2006-01-23 Thu     Mar           2002 Mon       
#> # ℹ 2 more variables: Stefan_month <fct>, Stefan_year <int>

tidy(date_rec, number = 1)
#> # A tibble: 6 × 4
#>   terms  value ordinal id        
#>   <chr>  <chr> <lgl>   <chr>     
#> 1 Dan    dow   FALSE   date_vUNsj
#> 2 Dan    month FALSE   date_vUNsj
#> 3 Dan    year  FALSE   date_vUNsj
#> 4 Stefan dow   FALSE   date_vUNsj
#> 5 Stefan month FALSE   date_vUNsj
#> 6 Stefan year  FALSE   date_vUNsj
源代码:R/date.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Date Feature Generator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。