Agrupar una variable numérica en un factor
Tu viejo amigo Dan te envió una lista de 50 bonos con calificación AAA llamada AAA_rank, donde cada bono tiene un número adicional del 1 al 100 que describe lo rentable que cree que será ese bono (100 es el más rentable). Te interesa profundizar en sus sugerencias, pero antes sería útil que los bonos se agruparan por su puntuación de alguna forma. Esto te ayudaría a crear grupos de bonos, desde los menos rentables hasta los más rentables, para analizarlos más fácilmente.
Este es un gran ejemplo de cómo crear un factor a partir de un vector numérico. La forma más sencilla de hacerlo es usar cut(). Abajo, la puntuación de Dan de 1 a 100 se agrupa en 5 intervalos equidistantes. Ten en cuenta que el ( en los niveles del factor significa que NO incluimos el número que aparece a su lado en ese grupo, y el ] significa que SÍ incluimos ese número en el grupo.
head(AAA_rank)
[1] 31 48 100 53 85 73
AAA_factor <- cut(x = AAA_rank, breaks = c(0, 20, 40, 60, 80, 100))
head(AAA_factor)
[1] (20,40] (40,60] (80,100] (40,60] (80,100] (60,80]
Levels: (0,20] (20,40] (40,60] (60,80] (80,100]
En la función cut(), usar breaks = te permite especificar los grupos por los que quieres que R clasifique tus datos.
Este ejercicio forma parte del curso
Introducción a R para finanzas
Instrucciones del ejercicio
- En lugar de 5 grupos, ¿puedes crear solo 4? En
breaks =usa un vector de 0 a 100 donde cada elemento esté separado por 25 números. Asígnalo aAAA_factor. - Los 4 grupos no tienen nombres muy descriptivos. Usa
levels()para renombrar los niveles a"low","medium","high"y"very_high", en ese orden. - Imprime el nuevo
AAA_factorcon nombres. - ¡Dibuja el
AAA_factorpara visualizar tu trabajo!
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create 4 buckets for AAA_rank using cut()
AAA_factor <- cut(x = ___, breaks = ___)
# Rename the levels
# Print AAA_factor
# Plot AAA_factor
plot(___)