función cut()

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)