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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。