在 R 中对分布不均的列进行分箱

Binning an unevenly distributed column in R

我必须在 R 中有一列,它具有像指数分布一样的不均匀分布。我想将数据归一化,然后将数据分箱到后续的桶中。

看到以下链接有助于规范化数据,但无法将数据分到不同类别。

Standardize data columns in R

示例:即使有很多行,分布的列看起来如何。

dat <- data.frame(Id = c(1,2,3,4,5,6,7,8),
                  Qty = c(1,1,1,2,3,13,30,45))

我希望它将列分为 5 个类别,可能如下所示:

dat <- data.frame(Id = c(1,2,3,4,5,6,7,8),
                      Qty = c(1,1,1,2,3,13,30,45),
                      Binned_Category = c(1,1,1,1,2,3,4,5))

以上 binned_Category 是示例,对于现实世界中的给定数据,值可能看起来不像这样。我只是想展示我希望输出的样子。

这将有助于:

num_bins <- 5
findInterval(Qty, unique(quantile(Qty, prob = seq(0, 1, 1/num_bins))))