【发布时间】:2020-12-08 23:34:25
【问题描述】:
我有一个数据集,我想使用 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 对我来说很重要。如何实现它?
【问题讨论】:
-
您为什么不手动指定休息时间?
breaks可以是指定所需断点的数字向量。 -
我将使用各种数据集,其中一些分布可能会有很大差异,这就是我不想使用固定休息时间的原因
-
@jedrekwol 你将如何决定休息时间?你能从数据中知道吗?你能创建一个计算休息时间的函数吗,比如
c(min(data), quantile(data, 0.25), 50, quantile(data, 0.75), max(data))? -
如果您的数据的最小值为 0,最大值为 0f 100,并且您有两个中间区间,您只需找到数据的最小值和最大值。 [min_data, 25.8] 和 [74.6. max_data] 应该是另外两个区间。
-
@allan-cameron 这实际上很好。数据集的偏度可能会有所不同,所以 50 有时会在第一个或最后一个区间,但我可以对其进行排序。