首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为一个值的向量找到不同的区间,使每个区间中的值的数量大致相等

为一个值的向量找到不同的区间,使每个区间中的值的数量大致相等
EN

Stack Overflow用户
提问于 2019-09-14 21:16:30
回答 1查看 33关注 0票数 0

我有一个向量,包括几百万个值。现在我希望找到不同的区间(每个区间为3个不同的区间,但可以是4、5或其他不同数量的区间),其中每个区间中的值的数量应该大致相等。

我只是尝试了一种手动的方法,那就是我首先做一个hist图,然后看看如何找到我想要的区间(或者我首先尝试不同的区间,并查看这些假设区间中的数字,如果不满意,那么尝试不同的区间组合)。但是,我认为应该有一种聪明的方法来做同样的事情。我模拟一小部分数据来显示我想要的。

代码语言:javascript
复制
v01 <- runif(2, 0, 1)
v12 <- runif(2, 1, 2)
v25 <- runif(2, 2, 5)

v <- c(v01, v12, v25)

hist(v)

length(v[v >= 0 & v <= 1])
# 2
length(v[v > 1  & v < 2])
# 2
length(v[v >= 2 & v < 5 ])
# 2

然后,间隔:(0, 1](1, 2][2, 5)就是我想要的,因为在这些间隔中,有(大约)相等数量的值(即这里是2)。请帮助给出一个提示,如何以适当的方式找到不同的这样的间隔?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-14 22:28:19

您希望在数据的特定分位数处使用分隔符。例如,

代码语言:javascript
复制
v01 <- runif(1000, 0, 1) 
v12 <- runif(1000, 1, 2)
v25 <- runif(1000, 2, 5)
v <- c(v01, v12, v25)
n <- 3  # Number of intervals
breaks <- quantile(v, (0:n)/n)  # These are the breakpoints.  You might
                                # want to round them to integers, based
                                # on your example
breaks

#           0%    33.33333%    66.66667%         100% 
# 0.0004285758 1.0002311588 1.9999579265 4.9946567267 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57935862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档