将值范围拆分为相同数量的 bin

Split range of values into bins of the same number

我的值介于 0.105 到 15.589 之间,代表基因表达的倍数变化。我试过使用

将它们分成垃圾箱
df$bin <- cut(df$FC, breaks=c(seq(min(df$FC),max(df$FC),length.out = 50)))

给我 50 个包含不同数量基因的箱子,例如 4297 个基因(它们的倍数变化)落入第一个箱子 (0.105,0.421),而只有一个基因落入最后一个箱子 (15.3,15.6]。

有没有办法将我的倍数变化范围分成组大小相等的箱子,比如 20 个。最后一个箱子可能包含少于 20 个基因,因为它不太可能平均分成 20 个一组,但这很好. 谢谢!

如果像这样将中断设置为目标向量的分位数,您将得到 50 个大小相同(大致)的组:

cut(df$FC, quantile(df$FC, probs = seq(0,1,l=51)))