0

我正在查看有关 Recipes 的文档,我找到了step_string2factorstep_num2factor但我找不到等效step_logical2factor的 . 我正在构建一个分类模型,需要将我的 T/F 结果转换为一个因子。这是否必须在预处理步骤中完成?如果是这样,为什么(提供预处理功能的配方不是重点吗?)?

4

1 回答 1

1

您可以step_num2factor()使用step_mutate()with进行工作as.numeric

library(recipes)
library(dplyr)

mtcars0 <- mtcars %>%
  mutate(across(c(vs, am), as.logical))

recipe(~., data = mtcars0) %>%
  step_mutate(across(c(vs, am), as.numeric)) %>%
  step_num2factor(vs, am, transform = function(x) x + 1, levels = c("FALSE", "TRUE")) %>%
  prep() %>%
  bake(new_data = NULL)
#> # A tibble: 32 × 11
#>      mpg   cyl  disp    hp  drat    wt  qsec vs    am     gear  carb
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <fct> <fct> <dbl> <dbl>
#>  1  21       6  160    110  3.9   2.62  16.5 FALSE TRUE      4     4
#>  2  21       6  160    110  3.9   2.88  17.0 FALSE TRUE      4     4
#>  3  22.8     4  108     93  3.85  2.32  18.6 TRUE  TRUE      4     1
#>  4  21.4     6  258    110  3.08  3.22  19.4 TRUE  FALSE     3     1
#>  5  18.7     8  360    175  3.15  3.44  17.0 FALSE FALSE     3     2
#>  6  18.1     6  225    105  2.76  3.46  20.2 TRUE  FALSE     3     1
#>  7  14.3     8  360    245  3.21  3.57  15.8 FALSE FALSE     3     4
#>  8  24.4     4  147.    62  3.69  3.19  20   TRUE  FALSE     4     2
#>  9  22.8     4  141.    95  3.92  3.15  22.9 TRUE  FALSE     4     2
#> 10  19.2     6  168.   123  3.92  3.44  18.3 TRUE  FALSE     4     4
#> # … with 22 more rows

您建议的功能之前已被请求,但在此答案时尚未实施。

于 2021-11-25T18:10:42.287 回答