如何在不丢失原始变量的情况下离散化数字变量?

问题描述

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

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

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

在上面的代码中,我将pop和gdpPercap中的原始值替换为各自的离散化版本,然后将它们释放。如何同时保留原始数值和离散变量?

第二,不是bin02,bin02,而是一种获取[0-100],[101-150]等垃圾箱的方法,所以我知道哪个垃圾箱具有什么值?

解决方法

不确定如何使用step_discretize并再次left_joining数据来执行此操作,但是arules包中有一个离散函数,该函数使用值来渲染箱。这是对我有用的。

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

以防万一,您知道如何在食谱中做到这一点,请告诉我。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...