以一个特定的间隔切割

Cut with one specific interval

我有一个数据集,我想使用 cut() 函数(或类似的东西)将它分成 4 个部分。

set.seed(5)
cut(runif(100, 0, 100), 4)

给出等级:(1.35,25.8] (25.8,50.2] (50.2,74.6] (74.6,99]

问题是,我希望一个间隔是 (25.8,50],另一个是 (50,74.6)。实际上,休息可能会有所不同,但这 50 对我来说很重要。如何实现它?

如果您使用 cut,则 第一个中断必须小于 min(data)。否则区间会有NA。

例如使用分位数,

cut(data, breaks= c(min(data) - diff(range(data)) / 1000,
                                             quantile(data)[2:5]))

此外,您已经知道两个中间区间(25.8 - 50 和 50 - 74.6),然后只需找到数据的最小值和最大值

cut(data, breaks= c(min(data) - diff(range(data)) / 1000, 
                                        25.8, 50, 74.6, max(data)))