2011-04-21 26 views
21

R有没有某种方法可以在没有任何中断的情况下按指定的间隔切割?例如,如果我想要在确切区间[1,10]中的值;默认cut将此间隔分成更小的间隔。R - 按定义的间隔切割

回答

32

要剪切到预定义的时间间隔,可以使用参数breaks指定断点向量。

定义了一些数据:

x <- sample(0:20, 100, replace=TRUE) 
x 

现在切割X 0,10和20:

cut(x, breaks=c(0, 10, 20), include.lowest=TRUE) 

    [1] (10,20] [0,10] [0,10] (10,20] (10,20] (10,20] [0,10] (10,20] (10,20] 
[10] (10,20] [0,10] (10,20] (10,20] (10,20] [0,10] (10,20] [0,10] [0,10] 
[19] [0,10] (10,20] [0,10] [0,10] [0,10] (10,20] [0,10] (10,20] (10,20] 
[28] (10,20] (10,20] [0,10] [0,10] [0,10] [0,10] (10,20] [0,10] [0,10] 
[37] [0,10] [0,10] (10,20] (10,20] (10,20] (10,20] [0,10] (10,20] [0,10] 
[46] (10,20] [0,10] (10,20] (10,20] [0,10] [0,10] (10,20] (10,20] (10,20] 
[55] [0,10] [0,10] (10,20] [0,10] [0,10] [0,10] [0,10] (10,20] (10,20] 
[64] (10,20] [0,10] [0,10] (10,20] (10,20] (10,20] (10,20] (10,20] (10,20] 
[73] (10,20] [0,10] [0,10] [0,10] (10,20] [0,10] (10,20] [0,10] (10,20] 
[82] [0,10] [0,10] (10,20] [0,10] [0,10] [0,10] (10,20] (10,20] [0,10] 
[91] [0,10] [0,10] (10,20] (10,20] [0,10] [0,10] [0,10] [0,10] (10,20] 
[100] (10,20] 
Levels: [0,10] (10,20] 
+0

我有关于 '一刀切' 切(X $ MPG,4)给了我 水平的问题:(10.4,16.3](16.3,22.1] (22.1,28](28,33.9) 我们如何提取分界点? 这里的分界点是10.4,16.3,22.1,28,33.9 – darkage 2014-08-08 10:50:33

+0

@darkage这是一个不同的问题,不是真正的相关但是你的问题在'cut'的最后一个例子中得到了回答,如果这样做没有帮助,请提出一个新问题。 – Andrie 2014-08-08 11:24:40

11

像这样的事情?打破了每个0.2从0到1

> a <- runif(100) 
> cut(a, seq(from = 0, to = 1, by = 0.2)) 
    [1] (0,0.2] (0.8,1] (0.8,1] (0.6,0.8] (0.6,0.8] (0,0.2] (0.6,0.8] 
    [8] (0.2,0.4] (0.8,1] (0.4,0.6] (0.8,1] (0.4,0.6] (0.8,1] (0.6,0.8] 
[15] (0.8,1] (0,0.2] (0.8,1] (0.8,1] (0.6,0.8] (0.6,0.8] (0.2,0.4] 
[22] (0.4,0.6] (0.6,0.8] (0.2,0.4] (0.6,0.8] (0.6,0.8] (0.6,0.8] (0,0.2] 
[29] (0,0.2] (0.2,0.4] (0,0.2] (0,0.2] (0,0.2] (0,0.2] (0,0.2] 
[36] (0.6,0.8] (0.2,0.4] (0.6,0.8] (0.6,0.8] (0.8,1] (0.2,0.4] (0.4,0.6] 
[43] (0.4,0.6] (0.6,0.8] (0.2,0.4] (0.6,0.8] (0.6,0.8] (0.6,0.8] (0.4,0.6] 
[50] (0.6,0.8] (0.6,0.8] (0,0.2] (0.2,0.4] (0.8,1] (0.8,1] (0.8,1] 
[57] (0.6,0.8] (0.2,0.4] (0.2,0.4] (0,0.2] (0.8,1] (0.8,1] (0.2,0.4] 
[64] (0.8,1] (0.2,0.4] (0.4,0.6] (0.8,1] (0,0.2] (0.4,0.6] (0,0.2] 
[71] (0.4,0.6] (0.8,1] (0.6,0.8] (0.4,0.6] (0,0.2] (0.2,0.4] (0.4,0.6] 
[78] (0,0.2] (0.2,0.4] (0.8,1] (0,0.2] (0.4,0.6] (0.8,1] (0,0.2] 
[85] (0,0.2] (0.2,0.4] (0.2,0.4] (0.4,0.6] (0.8,1] (0.2,0.4] (0,0.2] 
[92] (0.6,0.8] (0.2,0.4] (0.2,0.4] (0.8,1] (0.2,0.4] (0.4,0.6] (0,0.2] 
[99] (0,0.2] (0,0.2] 
Levels: (0,0.2] (0.2,0.4] (0.4,0.6] (0.6,0.8] (0.8,1]