IniziaInizia gratis

Raggruppare (bucket) una variabile numerica in un fattore

Il tuo vecchio amico Dan ti ha inviato un elenco di 50 obbligazioni con rating AAA chiamato AAA_rank, dove a ciascuna obbligazione è associato un numero da 1 a 100 che descrive quanto pensa sarà redditizia (100 è la più redditizia). Ti interessa analizzare meglio i suoi suggerimenti, ma prima sarebbe utile suddividere le obbligazioni in “bucket” in base al loro punteggio. Questo ti aiuterà a creare gruppi di obbligazioni, dalla meno alla più redditizia, per analizzarle più facilmente.

Questo è un ottimo esempio di creazione di un fattore a partire da un vettore numerico. Il modo più semplice per farlo è usare cut(). Qui sotto, il punteggio da 1 a 100 di Dan è suddiviso in 5 gruppi equidistanti. Nota che la ( nei livelli del fattore significa che non includiamo il numero accanto in quel gruppo, mentre la ] significa che includiamo quel numero nel gruppo.

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]

Nella funzione cut(), usare breaks = ti permette di specificare i gruppi in base ai quali R suddividerà i tuoi dati!

Questo esercizio fa parte del corso

Introduzione a R per la finanza

Visualizza il corso

Istruzioni dell'esercizio

  • Invece di 5 bucket, riesci a crearne solo 4? In breaks = usa un vettore da 0 a 100 in cui ogni elemento dista 25 numeri dal precedente. Assegnalo a AAA_factor.
  • I 4 bucket non hanno nomi molto descrittivi. Usa levels() per rinominare i livelli in "low", "medium", "high" e "very_high", in quest'ordine.
  • Stampa il nuovo AAA_factor con i nomi aggiornati.
  • Fai il grafico di AAA_factor per visualizzare il risultato!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create 4 buckets for AAA_rank using cut()
AAA_factor <- cut(x = ___, breaks = ___)

# Rename the levels 


# Print AAA_factor


# Plot AAA_factor
plot(___)
Modifica ed esegui il codice