如何在不丢失原始变量的情况下离散化数字变量?
How can I discretize the numeric variables without losing the original ones?
这是我的玩具数据和代码。如何在不丢失原始变量的情况下离散化数值变量?
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 具有什么值?
不确定如何再次使用 step_discretize 和 left_joining 数据来做到这一点,但是有一个来自 arules 包的离散化函数,它用值呈现 bins。这是对我有用的。
gapminder %>%
mutate(across(where(is.numeric),
~arules::discretize(x = .x, method = "interval", breaks = 10),
.names = "bin_{col}"))
如果您知道如何在食谱中执行此操作,请告诉我。
这是我的玩具数据和代码。如何在不丢失原始变量的情况下离散化数值变量?
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 具有什么值?
不确定如何再次使用 step_discretize 和 left_joining 数据来做到这一点,但是有一个来自 arules 包的离散化函数,它用值呈现 bins。这是对我有用的。
gapminder %>%
mutate(across(where(is.numeric),
~arules::discretize(x = .x, method = "interval", breaks = 10),
.names = "bin_{col}"))
如果您知道如何在食谱中执行此操作,请告诉我。