在给定范围内创建相等大小的区间

时间:2014-05-20 13:40:43

标签: r bins

我想创建相同大小的二进制数量的二进制数。 示例:因为我想创建大小为10的bin,范围为0..100

0 10
10 20
20 30
.
.
.
90 100

我尝试使用" cut"但不能使它适合我的目的。 我用了

r<-cut(100,4)

但它返回了

[1] (99.95,100]
Levels: (99.9,99.95] (99.95,100] (100,100.05] (100.05,100.1]

3 个答案:

答案 0 :(得分:2)

阅读帮助页面:?cut

cut(100,4)尝试将单个条目向量(100)切割为4个不同的区域。在此调用中,cut无法知道您是否希望垃圾箱用您的垃圾箱覆盖[0,100],或[50,100]或[99.9,100.1],因此必须做出一些假设。

cut(1:100,breaks=10*(0:10))可能会执行您想要的操作,甚至是levels(cut(100,breaks=10*(0:10))),具体取决于您对结果的确切要求。

答案 1 :(得分:2)

v <- seq(0, 100, 10)
# [1]   0  10  20  30  40  50  60  70  80  90 100

是一个载体。

您可以使用cut指定间隔:

cut(v, seq(0, 100, 10), include.lowest = TRUE)
# [1] [0,10]   [0,10]   (10,20]  (20,30]  (30,40]  (40,50]  (50,60]  (60,70]  (70,80]  (80,90]  (90,100]
# Levels: [0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] (80,90] (90,100]

答案 2 :(得分:1)

我认为你在寻找:

cbind(seq(0,90,by=10),seq(10,100,10))
      [,1] [,2]
 [1,]    0   10
 [2,]   10   20
 [3,]   20   30
 [4,]   30   40
 [5,]   40   50
 [6,]   50   60
 [7,]   60   70
 [8,]   70   80
 [9,]   80   90
[10,]   90  100