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
-
一个菜谱对象。该步骤将添加到此配方的操作序列中。
- ...
-
一个或多个选择器函数用于为此步骤选择变量。所选变量应具有类
POSIXct
或POSIXlt
。有关更多详细信息,请参阅selections()
。 - role
-
对于此步骤创建的模型项,应为其分配什么分析角色?默认情况下,此步骤根据原始变量创建的新列将用作模型中的预测变量。
- trained
-
指示预处理数量是否已估计的逻辑。
- features
-
至少包含以下值之一的字符串:
am
(是 AM)、hour
、hour12
、minute
、second
、decimal_day
。 - columns
-
所选变量名称的字符串。该字段是一个占位符,一旦使用
prep()
就会被填充。 - keep_original_cols
-
将原始变量保留在输出中的逻辑。默认为
TRUE
。 - skip
-
一个合乎逻辑的。当
bake()
烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在prep()
运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE
时应小心,因为它可能会影响后续操作的计算。 - id
-
该步骤特有的字符串,用于标识它。
细节
与其他一些步骤不同,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
(函数名称)的小标题。
也可以看看
其他虚拟变量和编码步骤:step_bin2factor()
, step_count()
, step_date()
, step_dummy_extract()
, step_dummy_multi_choice()
, step_dummy()
, step_factor2string()
, step_holiday()
, step_indicate_na()
, step_integer()
, step_novel()
, step_num2factor()
, step_ordinalscore()
, step_other()
, step_regex()
, step_relevel()
, step_string2factor()
, step_unknown()
, step_unorder()
例子
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 recipes step_unknown 将缺失的类别分配给“未知”
- R recipes step_relu 应用(平滑)修正线性变换
- R recipes step_poly_bernstein 广义伯恩斯坦多项式基
- R recipes step_impute_knn 通过 k 最近邻进行插补
- R recipes step_impute_mean 使用平均值估算数值数据
- R recipes step_inverse 逆变换
- R recipes step_pls 偏最小二乘特征提取
- R recipes step_ratio 比率变量创建
- R recipes step_geodist 两个地点之间的距离
- R recipes step_nzv 近零方差滤波器
- R recipes step_nnmf 非负矩阵分解信号提取
- R recipes step_normalize 中心和比例数值数据
- R recipes step_depth 数据深度
- R recipes step_other 折叠一些分类级别
- R recipes step_harmonic 添加正弦和余弦项以进行谐波分析
- R recipes step_corr 高相关滤波器
- R recipes step_novel 新因子水平的简单赋值
- R recipes step_select 使用 dplyr 选择变量
- R recipes step_regex 检测正则表达式
- R recipes step_spline_b 基础样条
- R recipes step_window 移动窗口函数
- R recipes step_ica ICA 信号提取
- R recipes step_discretize 离散数值变量
- R recipes step_dummy_multi_choice 一起处理多个预测变量的水平
- R recipes step_lincomb 线性组合滤波器
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Time Feature Generator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。