根据 R 中的特定分布将范围划分为垃圾箱

Divide range to bins according to specific distribution in R

我有数字范围,例如 1-20000,我有一个 windows 大小的向量:

lens <- c(100, 100, 100, 50, 20)

我想将范围 1-20000 拆分为 windows,其中 windows 长度的分布将类似于向量长度中的分布。

有什么想法吗?

谢谢

我想这就是你想要做的。首先我们需要可重现的数据:

set.seed(42)
x <- sample(20000, 200, replace=TRUE)

您想要将数据分成与 lens 成比例的组:

brks <- round(c(0, cumsum(lens)/sum(lens) * 20000))
brks
# [1]     0  5405 10811 16216 18919 20000
groups <- cut(x, brks, labels=brks[-1])
table(groups)
# groups
#  5405 10811 16216 18919 20000 
#    58    55    55    24     8