Regrouper une variable numérique en facteur
Votre vieil ami Dan vous a envoyé une liste de 50 obligations notées AAA appelée AAA_rank, chacune étant associée à un nombre de 1 à 100 décrivant à quel point il pense que l’obligation sera rentable (100 étant la plus rentable). Vous souhaitez analyser ses suggestions plus en profondeur, mais ce serait d’abord pratique que les obligations soient regroupées par plage de classement. Cela vous aidera à créer des groupes d’obligations, de la moins rentable à la plus rentable, pour les analyser plus facilement.
C’est un excellent exemple de création d’un facteur à partir d’un vecteur numérique. Le moyen le plus simple consiste à utiliser cut(). Ci-dessous, le classement de Dan de 1 à 100 est réparti en 5 groupes équidistants. Notez que le ( dans les niveaux du facteur signifie que nous n’incluons pas le nombre indiqué à côté dans ce groupe, et le ] signifie que nous incluons ce nombre dans le groupe.
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]
Dans la fonction cut(), l’argument breaks = vous permet de spécifier les groupes selon lesquels R doit regrouper vos données !
Cet exercice fait partie du cours
Introduction à R pour la finance
Instructions
- Au lieu de 5 regroupements, pouvez-vous n’en créer que 4 ? Dans
breaks =, utilisez un vecteur allant de 0 à 100 où chaque élément est espacé de 25. Assignez-le àAAA_factor. - Les 4 regroupements n’ont pas de noms très explicites. Utilisez
levels()pour renommer les niveaux en"low","medium","high"et"very_high", dans cet ordre. - Affichez le nouveau
AAA_factoravec ses noms. - Représentez
AAA_factorpour visualiser votre travail !
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create 4 buckets for AAA_rank using cut()
AAA_factor <- cut(x = ___, breaks = ___)
# Rename the levels
# Print AAA_factor
# Plot AAA_factor
plot(___)