我必须在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是示例,对于现实世界中的给定数据,值可能看起来不像这样。我只想展示我希望输出的样子。
答案 0 :(得分:1)
这会有所帮助:
num_bins <- 5
findInterval(Qty, unique(quantile(Qty, prob = seq(0, 1, 1/num_bins))))