2011-04-21 15 views
21

¿Hay alguna manera en R de cortar en un intervalo definido sin interrupciones?R - Cortar por intervalo definido

Por ejemplo, si quiero los valores en el intervalo exacto [1,10]; de forma predeterminada, cut divide este intervalo en intervalos más pequeños.

Respuesta

32

Para cortar a intervalos predefinidos, puede especificar un vector de interrupciones utilizando el parámetro breaks.

definir algunos datos:

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

x Ahora corte a 0, 10 y 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

Tengo una pregunta relacionada con 'cortar' corte (x $ mpg, 4) me da Niveles: (10.4,16.3] (16.3,22.1] (22.1,28) (28,33.9) ¿Cómo podemos extraer los puntos de corte? Los puntos de corte aquí son 10.4,16.3,22.1,28,33.9 – darkage

+0

@darkage Esa es una pregunta diferente, no muy relacionada al original. Pero su pregunta se responde en el último ejemplo de '? corte'. Si eso no ayuda, haga una nueva pregunta. – Andrie

11

Algo como esto? Descansos para cada 0,2 de 0 a 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]