當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。