离散化连续变量保持零

我想离散化一个包含连续变量的列。

数据看起来像;

c(0,25,77,423,6,8,3,65,32,22,10,15,1,2,4,5,6)

我想通过离散化将数字转换为分类数字,但零代表不同的类别。有时直接离散化可以保持不同的数字为零。

我想如果我保留零,然后离散化我的愿望就会实现。但是在数据框列中,由于索引,我无法做到:

这是一个示例 dput() 输出

structure(list(dummy_column = c(0,6)),class = "data.frame",row.names = c(NA,-23L))

例如,如果我想使用 2 个中断,类别应该是;零和其他 3 个离散化的,共 4 个类别。如果我能写一个函数来离散化一个可以直接用 dplyr::mutate()

创建的列应该会更好

提前致谢。

haobeiju 回答:离散化连续变量保持零

如果你有像下面这样的中断 c(20,50),你可以尝试 cut 离散化 dummy_column,例如,

breaks <- c(20,50)
df %>%
  mutate(discrete = cut(dummy_column,c(-1,breaks,max(dummy_column))))

给出

   dummy_column discrete
1             0   (-1,0]
2            25  (20,50]
3            77 (50,423]
4           423 (50,423]
5             6   (0,20]
6             8   (0,20]
7             3   (0,20]
8            65 (50,423]
9            32  (20,50]
10           22  (20,50]
11           10   (0,20]
12            0   (-1,0]
13            8   (0,20]
14            0   (-1,0]
15           15   (0,20]
16            0   (-1,0]
17           10   (0,20]
18            1   (0,20]
19            2   (0,20]
20            4   (0,20]
21            5   (0,20]
22            5   (0,20]
23            6   (0,20]
本文链接:https://www.f2er.com/379403.html

大家都在问