如何将数字向量切割成具有最大第i个区间长度的区间等于n

时间:2017-02-27 14:55:18

标签: r

例如,我有一个向量:a = my_function(1000)

head(a,15)
 [1]  0.4011032  0.4867019  0.9831197  1.1138037  3.2740297  3.7853916  4.6833426  6.9224802  7.5878639
[10]  8.0706788  8.4404792  9.4149317  9.4176043 10.2345215 11.1884374

我想使用cut函数(或某种替代方法)将此向量划分为区间。但我想要的是,每个间隔的最大大小将是,例如,5。

编辑:

休息:breaks <- seq(from = 1, by = 4,length.out = 100)

所以第一个间隔是:(1,5]a向量的前七个变量属于此区间。但我想,每个intervall的大小为5.这意味着前5个变量

[1]  0.4011032  0.4867019  0.9831197  1.1138037  3.2740297 

位于第一个区间。变量3.7853916 4.6833426位于第二个区间(长度等于5)。 我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

这就是你要找的东西:

a <- rnorm(100)
a <- sort(a)
b <- matrix(data = a, nrow = 10, ncol = 10, dimnames = list(1:10))

答案 1 :(得分:1)

您可以创建一个新变量来定义属性组,只需对值进行排序并使用数字标记它们(每个重复5次)。

cbind(sort(rnorm(100)), rep(1:20,each=5))

请注意rep中的thate,而不是1:20,您应该将n/5作为n元素的数量。

如果您需要定义间隔,则只需使用一组中最高值与下一组中最小值之间的中位数来定义主题。