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


R recipes step_time 時間特征生成器


step_time() 創建配方步驟的規範,該步驟將日期時間數據轉換為一個或多個因子或數值變量。

用法

step_time(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  features = c("hour", "minute", "second"),
  columns = NULL,
  keep_original_cols = TRUE,
  skip = FALSE,
  id = rand_id("time")
)

參數

recipe

一個菜譜對象。該步驟將添加到此配方的操作序列中。

...

一個或多個選擇器函數用於為此步驟選擇變量。所選變量應具有類 POSIXctPOSIXlt 。有關更多詳細信息,請參閱selections()

role

對於此步驟創建的模型項,應為其分配什麽分析角色?默認情況下,此步驟根據原始變量創建的新列將用作模型中的預測變量。

trained

指示預處理數量是否已估計的邏輯。

features

至少包含以下值之一的字符串: am (是 AM)、 hourhour12minuteseconddecimal_day

columns

所選變量名稱的字符串。該字段是一個占位符,一旦使用 prep() 就會被填充。

keep_original_cols

將原始變量保留在輸出中的邏輯。默認為 TRUE

skip

一個合乎邏輯的。當bake() 烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在 prep() 運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE時應小心,因為它可能會影響後續操作的計算。

id

該步驟特有的字符串,用於標識它。

recipe 的更新版本,將新步驟添加到任何現有操作的序列中。

細節

與其他一些步驟不同,step_time() 默認情況下不會刪除原始時間變量。將 keep_original_cols 設置為 FALSE 以刪除它們。

decimal_day 以 0 到 24 之間的十進製數形式返回一天中的時間。例如, "07:15:00" 將轉換為 7.25"03:59:59" 將轉換為 3.999722 。這些計算的公式為 hour(x) + (second(x) + minute(x) * 60) / 3600

如果您想計算大於小時的特征,請參閱step_date()

整理

當您tidy()此步驟時,會出現一個包含列terms(選定的選擇器或變量)和value(函數名稱)的小標題。

例子

library(lubridate)

examples <- data.frame(
  times = ymd_hms("2022-05-06 23:51:07") +
  hours(1:5) + minutes(1:5) + seconds(1:5)
)
time_rec <- recipe(~ times, examples) %>%
  step_time(all_predictors())

tidy(time_rec, number = 1)
#> # A tibble: 3 × 3
#>   terms            value  id        
#>   <chr>            <chr>  <chr>     
#> 1 all_predictors() hour   time_wvoo0
#> 2 all_predictors() minute time_wvoo0
#> 3 all_predictors() second time_wvoo0

time_rec <- prep(time_rec, training = examples)

time_values <- bake(time_rec, new_data = examples)
time_values
#> # A tibble: 5 × 4
#>   times               times_hour times_minute times_second
#>   <dttm>                   <int>        <int>        <dbl>
#> 1 2022-05-07 00:52:08          0           52            8
#> 2 2022-05-07 01:53:09          1           53            9
#> 3 2022-05-07 02:54:10          2           54           10
#> 4 2022-05-07 03:55:11          3           55           11
#> 5 2022-05-07 04:56:12          4           56           12

tidy(time_rec, number = 1)
#> # A tibble: 3 × 3
#>   terms value  id        
#>   <chr> <chr>  <chr>     
#> 1 times hour   time_wvoo0
#> 2 times minute time_wvoo0
#> 3 times second time_wvoo0
源代碼:R/time.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Time Feature Generator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。