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
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 aAAA_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_factorcon i nomi aggiornati. - Fai il grafico di
AAA_factorper 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(___)