1

这是我的玩具数据和代码。如何在不丢失原始变量的情况下离散化数值变量?

library(gapminder); library(tidyverse); library(tidymodels)

gapminder %>% 
  recipe(lifeExp ~ .) %>% 
  step_discretize(all_numeric(), -all_outcomes(), options = list(cuts = 10)) %>% 
  prep() %>% 
  juice()

在上面的代码中,我从 pop 和 gdpPercap 中丢失了原始值,因为它们被各自的离散化版本替换。如何同时保留:原始数值和离散变量?

其次,不是bin01,bin02,没有办法获得[0-100],[101-150]等类型的bin,所以我知道哪个bin有什么值?

4

1 回答 1

1

不知道如何使用 step_discretize 和 left_joining 数据再次执行此操作,但 arules 包中有一个离散函数,可以使用值呈现 bin。这是对我有用的。

gapminder %>% 
  mutate(across(where(is.numeric),  
      ~arules::discretize(x = .x, method = "interval", breaks = 10), 
         .names = "bin_{col}"))

如果你知道如何在食谱中做到这一点,请告诉我。

于 2020-08-20T17:48:55.240 回答