cut(x, breaks, labels, right=TRUE)
x = Vector numérico.
breaks = Vector de cortes. También puede ser un elemento, en ese caso R agrupa los datos en k clases.
labels = Las etiquetas que tomarán los cortes.
right = El tipo de intervalos que se usará, por defecto es TRUE, lo que quiere decir que será cerrado a la derecha.
Ejemplo. Si se tiene el siguiente vector de edades.
set.seed(1)
edades<-sample(1:30, 40, T)
edades## [1] 25 4 7 1 2 29 23 11 14 18 27 19 1 21 21 10 22 14 10 7 9 15 21 5 9
## [26] 25 14 5 5 2 10 30 25 12 15 1 20 3 6 10
Si se sabe que según edades se clasifica de la siguiente manera.
De 0 a 5 años —> “Primera Infancia”.
6 a 11 años —> “Infancia”.
12 a 18 años —> “Adolescencia”.
19 a 30 años —> “Juventud”.
Se discretizaría de la siguientes manera.
edades<-cut(edades, breaks = c(0, 5, 11, 18, 30),
labels = c("Primera\n Infancia","Infancia","Adolescencia","Juventud"))
edades## [1] Juventud Primera\n Infancia Infancia Primera\n Infancia
## [5] Primera\n Infancia Juventud Juventud Infancia
## [9] Adolescencia Adolescencia Juventud Juventud
## [13] Primera\n Infancia Juventud Juventud Infancia
## [17] Juventud Adolescencia Infancia Infancia
## [21] Infancia Adolescencia Juventud Primera\n Infancia
## [25] Infancia Juventud Adolescencia Primera\n Infancia
## [29] Primera\n Infancia Primera\n Infancia Infancia Juventud
## [33] Juventud Adolescencia Adolescencia Primera\n Infancia
## [37] Juventud Primera\n Infancia Infancia Infancia
## Levels: Primera\n Infancia Infancia Adolescencia Juventud
En efecto, se ha discretizado. Recordar que se omitió el argumento right, ya que estamos considerando que tiene que ser cerrado el intervalo por la derecha y el valor por defecto de right es TRUE.
Lo podemos ver más claramente en un gráfico de barras.
barplot(table(edades), cex.names = 0.8, main="Personas por etapas de vida",
col = terrain.colors(4, alpha = 0.8), font=2)