Vous êtes sur la page 1sur 47

Introduction à R

Course Description
Dans Introduction à R, vous maîtriserez les bases de ce langage open source
largement utilisé, y compris les facteurs, les listes et les blocs de données. Avec
les connaissances acquises dans ce cours, vous serez prêt à entreprendre votre
première analyse de données. Oracle a estimé plus de 2 millions d'utilisateurs de
R dans le monde en 2012, consolidant R comme un langage de programmation
de premier plan dans les statistiques et la science des données. Chaque année, le
nombre d'utilisateurs de R augmente d'environ 40 % et un nombre croissant
d'organisations l'utilisent dans leurs activités quotidiennes. Commencez votre
voyage pour apprendre R avec nous dès aujourd'hui !

1- Introduction aux bases


Faites vos premiers pas avec R. Dans ce chapitre, vous apprendrez à utiliser la
console comme une calculatrice et à affecter des variables. Vous apprendrez
également à connaître les types de données de base dans R. Commençons.

Comment ça fonctionne
Dans l'éditeur de droite, vous devez taper le code R pour résoudre les exercices.
Lorsque vous appuyez sur le bouton « Envoyer la réponse », chaque ligne de
code est interprétée et exécutée par R et vous recevez un message indiquant si
votre code est correct ou non. La sortie de votre code R est affichée dans la
console dans le coin inférieur droit.

R utilise le # signe pour ajouter des commentaires, afin que vous et les autres
puissiez comprendre de quoi parle le code R. Tout comme Twitter ! Les
commentaires ne sont pas exécutés en tant que code R, ils n'influenceront donc
pas votre résultat. Par exemple, Calculer 3 + 4 dans l'éditeur de droite est un
commentaire.
Vous pouvez également exécuter des commandes R directement dans la console.
C'est un bon moyen d'expérimenter avec le code R, car l'exactitude de votre
soumission n'est pas vérifiée.

Instructions
Dans l'éditeur de droite, il y a déjà un exemple de code. Pouvez-vous voir
quelles lignes sont du code R réel et lesquelles sont des commentaires ?
Ajoutez une ligne de code qui calcule la somme de 6 et 12 et appuyez sur le
bouton « Envoyer la réponse ».

Vous voyez comment la console affiche le résultat du code R que vous avez
soumis ? Maintenant que vous êtes familiarisé avec l'interface, passons aux
affaires R !

Arithmétique avec R
Dans sa forme la plus basique, R peut être utilisé comme une simple
calculatrice. Considérons les opérateurs arithmétiques suivants :

Une addition: +
Soustraction: -
Multiplication: *
Division: /
Exponentiation : ^
Module : %%
Les deux derniers pourraient avoir besoin d'explications :

L' ^opérateur élève le nombre à sa gauche à la puissance du nombre à sa droite :


par exemple 3^2est 9.
Le modulo renvoie le reste de la division du nombre à gauche par le nombre à sa
droite, par exemple 5 modulo 3 ou 5 %% 3vaut 2.
Instructions
Tapez 2^5dans l'éditeur pour calculer 2 à la puissance 5.
Tapez 28 %% 6pour calculer 28 modulo 6.
Soumettez la réponse et jetez un œil à la sortie R dans la console.
Notez comment le # symbole est utilisé pour ajouter des commentaires sur
le code R.

Affectation des variables


Un concept de base de la programmation (statistique) s'appelle une
variable.
Une variable vous permet de stocker une valeur (par exemple 4) ou un
objet (par exemple une description de fonction) dans R. Vous pouvez
ensuite utiliser le nom de cette variable pour accéder facilement à la valeur
ou à l'objet qui est stocké dans cette variable.

Vous pouvez affecter une valeur 4 à une variable my_var avec la


commande

my_var <- 4

Instructions
A vous de jouer : complétez le code sous l'éditeur de telle sorte qu'il affecte la
valeur 42 à la variable x sous l'éditeur. Soumettez la réponse. Notez que lorsque
vous demandez à R d'imprimer x, la valeur 42 apparaît.

Avez-vous remarqué que R n'imprime pas la valeur d'une variable sur la console
lorsque vous avez effectué l'affectation ? x <- 42n'a généré aucune sortie, car R
suppose que vous aurez besoin de cette variable à l'avenir. Sinon, vous n'auriez
pas stocké la valeur dans une variable en premier lieu, n'est-ce pas ? Passez à
l'exercice suivant !
Affectation des variables (2)
Supposons que vous ayez une corbeille de fruits avec cinq pommes. En tant
qu'analyste de données en formation, vous souhaitez stocker le nombre de
pommes dans une variable portant le nom my_apples.

Instructions
Tapez le code suivant dans l'éditeur : my_apples <- 5. Cela affectera la valeur 5
à my_apples.
Tapez : my_apples sous le deuxième commentaire. Cela imprimera la valeur de
my_apples.
Soumettez votre réponse et regardez le résultat : vous voyez que le chiffre 5 est
imprimé. Donc R lie maintenant la variable my_apples à la valeur 5.

Affectation des variables (3)


Chaque panier de fruits savoureux a besoin d'oranges, vous décidez donc
d'ajouter six oranges. En tant qu'analyste de données, votre réflexe est de créer
immédiatement la variable my_oranges et de lui attribuer la valeur 6. Ensuite,
vous voulez calculer combien de morceaux de fruits vous avez au total. Puisque
vous avez donné des noms significatifs à ces valeurs, vous pouvez maintenant
coder ceci de manière claire :

my_apples + my_oranges

Instructions
Attribuer à my_oranges la valeur 6.
Ajoutez les variables my_apples et my_oranges demandez à R d'imprimer
simplement le résultat.
Affectez le résultat de l'ajout my_apples et my_oranges à une nouvelle variable
my_fruit.
Affectation des variables (3)
Chaque panier de fruits savoureux a besoin d'oranges, vous décidez donc
d'ajouter six oranges. En tant qu'analyste de données, votre réflexe est de créer
immédiatement la variable my_oranges et de lui attribuer la valeur 6. Ensuite,
vous voulez calculer combien de morceaux de fruits vous avez au total. Puisque
vous avez donné des noms significatifs à ces valeurs, vous pouvez maintenant
coder ceci de manière claire :

my_apples + my_oranges

Instructions
Attribuer à my_oranges la valeur 6.
Ajoutez les variables my_apples et my_oranges demandez à R d'imprimer
simplement le résultat.
Affectez le résultat de l'ajout my_apples et my_oranges à une nouvelle variable
my_fruit.
Le grand avantage de faire des calculs avec des variables est la réutilisabilité. Si
vous changez simplement my_apples pour égaler 12 au lieu de 5 et réexécutez le
script, il se my_fruit mettra également à jour automatiquement. Passez à
l'exercice suivant.

Pommes et oranges
La connaissance commune vous dit de ne pas ajouter de pommes et d'oranges.
Mais bon, c'est ce que tu viens de faire, non :-) ? Les my_appleset les
my_orangesvariables à la fois contenait un certain nombre dans l'exercice
précédent. L' +opérateur travaille avec des variables numériques dans R. Si vous
essayiez vraiment d'ajouter des "pommes" et des "oranges", et affectiez une
valeur de texte à la variable my_oranges(voir l'éditeur), vous essaieriez
d'attribuer l'ajout d'un numérique et d'un variable de caractère à la variable
my_fruit. Ce n'est pas possible.
Instructions
Soumettez la réponse et lisez le message d'erreur. Assurez-vous de comprendre
pourquoi cela n'a pas fonctionné.
Ajustez le code pour que R sache que vous avez 6 oranges et donc une corbeille
de fruits avec 11 fruits.

Types de données de base dans R


R fonctionne avec de nombreux types de données. Certains des types les plus
basiques pour commencer sont :

Les valeurs décimales comme 4.5sont appelées numériques .


Les nombres entiers comme 4sont appelés entiers . Les nombres entiers sont
également des nombres.
Les valeurs booléennes ( TRUEou FALSE) sont appelées logiques .
Les valeurs de texte (ou de chaîne) sont appelées caractères .
Notez comment les guillemets dans l'éditeur indiquent qu'il "some text"s'agit
d'une chaîne.

Instructions
Modifiez la valeur de :
my_numeric variable à 42.
my_character variable à "universe". Notez que les guillemets indiquent qu'il
"universe" s'agit d'un caractère.
my_logicalvariable à FALSE.
Notez que R est sensible à la casse !

Quel est ce type de données ?


Vous souvenez-vous que lorsque vous avez ajouté 5 + "six", vous avez obtenu
une erreur en raison d'une incompatibilité dans les types de données ? Vous
pouvez éviter de telles situations embarrassantes en vérifiant au préalable le type
de données d'une variable. Vous pouvez le faire avec la class() fonction, comme
le montre le code dans l'éditeur.
Instructions
Complétez le code dans l'éditeur et imprimez également les classes de
my_character et my_logical.

Passez au chapitre suivant pour vous immerger dans le monde des vecteurs !

2 – Vecteurs
Nous vous emmenons dans un voyage à Vegas, où vous apprendrez à analyser
vos résultats de jeu à l'aide de vecteurs dans R. Après avoir terminé ce chapitre,
vous serez en mesure de créer des vecteurs dans R, de les nommer, d'en
sélectionner des éléments et de comparer différents vecteurs.

Créer un vecteur
Se sentir chanceux? Vous feriez mieux, car ce chapitre vous emmène dans un
voyage dans la Cité des Péchés, également connue sous le nom de Paradis des
Statisticiens !

Grâce à R et à vos nouvelles compétences en analyse de données, vous


apprendrez à améliorer vos performances aux tables et à lancer votre carrière de
joueur professionnel. Ce chapitre montrera comment vous pouvez facilement
suivre la progression de vos paris et comment vous pouvez effectuer des
analyses simples sur les actions passées. Prochain arrêt, Vegas Baby…
VEGAS !!

Instructions
Vous souvenez-vous encore de ce que vous avez appris dans le premier
chapitre ? Affectez la valeur "Go!"à la variable vegas. N'oubliez pas : R est
sensible à la casse !

Créer un vecteur (2)


Concentrons-nous d'abord !

Sur votre chemin de la misère à la richesse, vous ferez un usage intensif des
vecteurs. Les vecteurs sont des tableaux à une dimension qui peuvent contenir
des données numériques, des données de caractères ou des données logiques. En
d'autres termes, un vecteur est un outil simple pour stocker des données. Par
exemple, vous pouvez stocker vos gains et pertes quotidiens dans les casinos.

Dans R, vous créez un vecteur avec la fonction combine c(). Vous placez les
éléments vectoriels séparés par une virgule entre les parenthèses. Par example:

numeric_vector <- c(1, 2, 3)


character_vector <- c("a", "b", "c")
Une fois que vous avez créé ces vecteurs dans R, vous pouvez les utiliser pour
faire des calculs.

Instructions
Complétez le code de telle sorte qu'il boolean_vectorcontienne les trois éléments
: TRUE, FALSE et TRUE (dans cet ordre).
Notez que l'ajout d'un espace derrière les virgules dans la c()fonction améliore la
lisibilité de votre code. Pratiquons un peu plus la création de vecteurs dans le
prochain exercice.

Créer un vecteur (3)


Après une semaine à Las Vegas et toujours zéro Ferrari dans votre garage, vous
décidez qu'il est temps de commencer à utiliser vos super-pouvoirs d'analyse de
données.

Avant de faire une première analyse, vous décidez d'abord de collecter tous les
gains et pertes de la semaine dernière :

Pour poker_vector:
Lundi, vous avez gagné 140 $
Mardi tu as perdu 50$
Mercredi, vous avez gagné 20 $
Jeudi tu as perdu 120$
Vendredi, vous avez gagné 240 $
Pour roulette_vector:

Lundi tu as perdu 24$


Mardi tu as perdu 50$
Mercredi tu as gagné 100$
Jeudi tu as perdu 350$
Vendredi tu as gagné 10$
Vous ne jouiez qu'au poker et à la roulette, car il y avait une délégation de
médiums qui occupait les tables de craps. Pour pouvoir utiliser ces données dans
R, vous décidez de créer les variables poker_vectoret roulette_vector.

Instructions
Attribuez les gains/pertes de la roulette à la variable roulette_vector. Vous avez
perdu 24 $, puis 50 $, gagné 100 $, perdu 350 $ et gagné 10 $.

Pour vérifier le contenu de vos vecteurs, n'oubliez pas que vous pouvez toujours
simplement taper la variable dans la console et appuyer sur Entrée. Passez à
l'exercice suivant !

Nommer un vecteur
En tant qu'analyste de données, il est important d'avoir une vue claire sur les
données que vous utilisez. Il est donc essentiel de comprendre à quoi se réfère
chaque élément.
Dans l'exercice précédent, nous avons créé un vecteur avec vos gains sur la
semaine. Chaque élément vectoriel fait référence à un jour de la semaine mais il
est difficile de dire quel élément appartient à quel jour. Ce serait bien si vous
pouviez montrer cela dans le vecteur lui-même.

Vous pouvez donner un nom aux éléments d'un vecteur avec la names()fonction.
Regardez cet exemple :

some_vector <- c("John Doe", "poker player")


names(some_vector) <- c("Name", "Profession")
Ce code crée d'abord un vecteur some_vectorpuis donne un nom aux deux
éléments. Le premier élément est nommé Name, tandis que le deuxième élément
est étiqueté Profession. L'impression du contenu sur la console génère la sortie
suivante :

Name Profession
"John Doe" "poker player"

Instructions
Le code dans l'éditeur nomme les éléments poker_vectoravec les jours de la
semaine. Ajoutez du code pour faire la même chose pour roulette_vector.

Nommer un vecteur (2)


Si vous voulez devenir un bon statisticien, vous devez devenir paresseux. (Si
vous êtes déjà paresseux, il y a de fortes chances que vous fassiez partie de ces
talents statistiques exceptionnels et naturels.)

Dans les exercices précédents, vous avez probablement constaté qu'il est
ennuyeux et frustrant de taper et de retaper des informations telles que les jours
de la semaine. Cependant, lorsque vous le regardez d'un point de vue plus élevé,
il existe un moyen plus efficace de le faire, à savoir affecter le vecteur des jours
de la semaine à une variable !
Tout comme vous l'avez fait avec vos retours de poker et de roulette, vous
pouvez également créer une variable qui contient les jours de la semaine. De
cette façon, vous pouvez l'utiliser et le réutiliser.
Instructions
Une variable days_vectorcontenant les jours de la semaine a déjà été créée pour
vous.
Utilisez days_vectorpour définir les noms de poker_vectoret roulette_vector.

Joli! Un conseil : essayez d'éviter la duplication de code à tout moment. Passez à


l'exercice suivant et apprenez à faire de l'arithmétique avec des vecteurs !

Calcul des gains totaux


Maintenant que vous avez bien les gains de poker et de roulette en tant que
vecteurs nommés, vous pouvez commencer à faire de la magie analytique des
données.

Vous souhaitez connaître le type d'informations suivant :

Quel a été votre profit ou votre perte globale par jour de la semaine ?
Avez-vous perdu de l'argent sur la semaine au total ?
Gagnez/perdez-vous de l'argent au poker ou à la roulette ?
Pour obtenir les réponses, vous devez faire des calculs arithmétiques sur des
vecteurs.

Il est important de savoir que si vous additionnez deux vecteurs dans R, il faut la
somme par élément. Par exemple, les trois déclarations suivantes sont
complètement équivalentes :

c(1, 2, 3) + c(4, 5, 6)
c(1 + 4, 2 + 5, 3 + 6)
c(5, 7, 9)
Vous pouvez également faire les calculs avec des variables qui représentent des
vecteurs :

a <- c(1, 2, 3)
b <- c(4, 5, 6)
c <- a + b
Instructions
Prendre la somme des variables A_vectoret B_vectoret l' affecter à total_vector.
Inspectez le résultat en imprimant total_vector.

Calcul du total des gains (2)


Maintenant que vous comprenez comment R fait de l'arithmétique avec des
vecteurs, il est temps de mettre ces Ferrari dans votre garage ! Tout d'abord,
vous devez comprendre quel était le bénéfice ou la perte global par jour de la
semaine. Le profit quotidien total est la somme du profit/perte que vous avez
réalisé au poker par jour et du profit/perte que vous avez réalisé à la roulette par
jour.

Dans R, c'est juste la somme de roulette_vectoret poker_vector.


Instructions
Attribuez à la variable total_dailycombien vous avez gagné ou perdu au total
chaque jour (poker et roulette combinés).

Calcul du total des gains (3)


D'après l'analyse précédente, il semble que vous ayez eu un mélange de bons et
de mauvais jours. Ce n'est pas ce à quoi votre ego s'attendait, et vous vous
demandez s'il y a une très petite chance que vous ayez perdu de l'argent au cours
de la semaine au total ?
Une fonction qui vous aide à répondre à cette question est sum(). Il calcule la
somme de tous les éléments d'un vecteur. Par exemple, pour calculer le montant
total d'argent que vous avez perdu/gagné au poker, procédez comme suit :

total_poker <- sum(poker_vector)


Instructions
Calculez le montant total d'argent que vous avez gagné/perdu à la roulette et
attribuez-le à la variable total_roulette.
Maintenant que vous avez les totaux pour la roulette et le poker, vous pouvez
facilement calculer total_week(qui est la somme de tous les gains et pertes de la
semaine).
Imprimez total_week.

Comparer les gains totaux


Oups, il semble que vous perdiez de l'argent. Il est temps de repenser et
d'adapter votre stratégie ! Cela nécessitera une analyse plus approfondie…

Après un court brainstorming dans le jacuzzi de votre hôtel, vous réalisez qu'une
explication possible pourrait être que vos compétences à la roulette ne sont pas
aussi développées que vos compétences au poker. Alors peut-être que vos gains
totaux au poker sont plus élevés (ou >) qu'à la roulette.
Instructions
Calculez total_pokeret total_roulettecomme dans l'exercice précédent. Utilisez la
sum()fonction deux fois.
Vérifiez si vos gains totaux au poker sont plus élevés qu'à la roulette en utilisant
une comparaison. Imprimez simplement le résultat de cette comparaison. Qu'en
concluez-vous, faut-il se concentrer sur la roulette ou sur le poker ?
Instructions
Calculez total_pokeret total_roulette comme dans l'exercice précédent. Utilisez
la sum()fonction deux fois.
Vérifiez si vos gains totaux au poker sont plus élevés qu'à la roulette en utilisant
une comparaison. Imprimez simplement le résultat de cette comparaison. Qu'en
concluez-vous, faut-il se concentrer sur la roulette ou sur le poker ?

Sélection de vecteurs : les bons moments


Votre intuition semblait avoir raison. Il semble que le jeu de poker soit plus
votre tasse de thé que la roulette.

Une autre voie d'enquête possible est votre performance au début de la semaine
de travail par rapport à la fin de celle-ci. Vous avez pris quelques cocktails
Margarita à la fin de la semaine…

Pour répondre à cette question, vous souhaitez uniquement vous concentrer sur
une sélection des fichiers total_vector. En d'autres termes, notre objectif est de
sélectionner des éléments spécifiques du vecteur. Pour sélectionner des éléments
d'un vecteur (et plus tard des matrices, des trames de données, …), vous pouvez
utiliser des crochets. Entre les crochets, vous indiquez les éléments à
sélectionner. Par exemple, pour sélectionner le premier élément du vecteur, vous
tapez poker_vector[1]. Pour sélectionner le deuxième élément du vecteur, vous
tapez poker_vector[2], etc. Notez que le premier élément d'un vecteur a l'indice
1, pas 0 comme dans de nombreux autres langages de programmation.

Instructions
Attribuez les résultats de poker du mercredi à la variable poker_wednesday.
R permet également de sélectionner plusieurs éléments d'un vecteur à la fois.
Apprenez comment dans le prochain exercice !
Sélection de vecteurs : les bons moments (2)
Que diriez-vous d'analyser vos résultats en milieu de semaine ?

Pour sélectionner plusieurs éléments d'un vecteur, vous pouvez ajouter des
crochets à la fin de celui-ci. Vous pouvez indiquer entre parenthèses quels
éléments doivent être sélectionnés. Par exemple : supposons que vous vouliez
sélectionner le premier et le cinquième jour de la semaine : utilisez le vecteur
c(1, 5)entre crochets. Par exemple, le code ci-dessous sélectionne le premier et
le cinquième élément de poker_vector:

poker_vector[c(1, 5)]

Instructions
Affectez les résultats de poker du mardi, mercredi et jeudi à la variable
poker_midweek.

Sélection de vecteurs : les bons moments (3)


La sélection de plusieurs éléments de poker_vectorwith c(2, 3, 4) n'est pas très
pratique. De nombreux statisticiens sont des paresseux par nature, ils ont donc
créé un moyen plus simple de le faire : c(2, 3, 4) peut être abrégé en 2:4, qui
génère un vecteur avec tous les nombres naturels de 2 à 4.

Donc, une autre façon de trouver les résultats en milieu de semaine est
poker_vector[2:4]. Remarquez comment le vecteur 2:4est placé entre les
crochets pour sélectionner les éléments 2 à 4.
Instructions
Attribuez aux roulette_selection_vectorrésultats de la roulette du mardi au
vendredi ; utiliser :si cela vous facilite les choses.
L'opérateur deux-points est extrêmement utile et très souvent utilisé dans la
programmation R, alors souvenez-vous-en bien. Passez à l'exercice suivant.
Sélection de vecteurs : les bons moments (4)
Une autre façon d'aborder l'exercice précédent est d'utiliser les noms des
éléments vectoriels (lundi, mardi, …) au lieu de leurs positions numériques. Par
example,

poker_vector["Monday"]
sélectionnera le premier élément de poker_vectorpuisque "Monday"est le nom
de ce premier élément.

Tout comme vous l'avez fait dans l'exercice précédent avec des chiffres, vous
pouvez également utiliser les noms d'éléments pour sélectionner plusieurs
éléments, par exemple :

poker_vector[c("Monday","Tuesday")]
Instructions
Sélectionnez les trois premiers éléments en poker_vector utilisant leurs noms :
"Monday", "Tuesday"et "Wednesday". Affectez le résultat de la sélection à
poker_start.
Calculer la moyenne des valeurs poker_start avec la mean() fonction. Imprimez
simplement le résultat pour pouvoir l'inspecter.
Outre le sous-ensemble des vecteurs par index ou par nom, vous pouvez
également sous-ensemble des vecteurs par comparaison. Les prochains exercices
vous montreront comment !

Sélection par comparaison - Étape 1


En utilisant des opérateurs de comparaison, nous pouvons aborder la question
précédente de manière plus proactive.

Les opérateurs de comparaison (logiques) connus de R sont :


< pour moins de
> pour plus de
<= pour un montant inférieur ou égal à
>= pour supérieur ou égal à
== pour égaux les uns aux autres
!= pas égaux les uns aux autres
Comme vu dans le chapitre précédent, l'énoncé 6 > 5renvoie TRUE. La bonne
chose à propos de R est que vous pouvez également utiliser ces opérateurs de
comparaison sur des vecteurs. Par example:

c(4, 5, 6) > 5
[1] FALSE FALSE TRUE
Cette commande teste pour chaque élément du vecteur si la condition indiquée
par l'opérateur de comparaison est TRUE ou FALSE.
Instructions
Vérifiez quels éléments poker_vectorsont positifs (c'est-à-dire > 0) et attribuez-
les à selection_vector.
Imprimez-le selection_vectorpour pouvoir l'inspecter. L'impression vous indique
si vous avez gagné ( TRUE) ou perdu ( FALSE) de l'argent pour chaque jour.

Sélection par comparaison - Étape 2


Travailler avec des comparaisons rendra votre vie analytique de données plus
facile. Au lieu de sélectionner un sous-ensemble de jours pour enquêter sur
vous-même (comme auparavant), vous pouvez simplement demander à R de ne
revenir que les jours où vous avez réalisé un retour positif pour le poker.

Dans les exercices précédents, vous aviez l'habitude selection_vector <-


poker_vector > 0de trouver les jours où vous aviez un retour positif au poker.
Maintenant, vous aimeriez savoir non seulement les jours où vous avez gagné,
mais aussi combien vous avez gagné ces jours-là.
Vous pouvez sélectionner les éléments souhaités, en mettant
selection_vectorentre les crochets qui suivent poker_vector:

poker_vector[selection_vector]
R sait quoi faire lorsque vous passez un vecteur logique entre crochets : il ne
sélectionnera que les éléments qui correspondent à TRUEin selection_vector.

Instructions
Utilisez selection_vectorentre crochets pour affecter les montants que vous avez
gagnés les jours rentables à la variable poker_winning_days.

Sélection avancée
Tout comme vous l'avez fait pour le poker, vous voulez également connaître les
jours où vous avez réalisé un retour positif pour la roulette.
Instructions
Créez la variable selection_vector, cette fois pour voir si vous avez fait des
bénéfices avec la roulette pour différents jours.
Attribuez les montants que vous avez gagnés les jours où vous avez terminé
positivement pour la roulette à la variable roulette_winning_days. Ce vecteur
contient donc les gains positifs de roulette_vector.

Cet exercice conclut le chapitre sur les vecteurs. Le chapitre suivant vous
présentera la version bidimensionnelle des vecteurs : les matrices.
3- Matrices
Dans ce chapitre, vous apprendrez à travailler avec des matrices dans R. À la fin
du chapitre, vous serez capable de créer des matrices et de comprendre comment
faire des calculs de base avec elles. Vous analyserez les chiffres du box-office
des films Star Wars et apprendrez à utiliser les matrices dans R. Que la force soit
avec vous !

Qu'est-ce qu'une matrice ?


Dans R, une matrice est une collection d'éléments du même type de données
(numérique, caractère ou logique) disposés en un nombre fixe de lignes et de
colonnes. Comme vous ne travaillez qu'avec des lignes et des colonnes, une
matrice est appelée bidimensionnelle.

Vous pouvez construire une matrice dans R avec la matrix()fonction. Considérez


l'exemple suivant :

matrix(1:9, byrow = TRUE, nrow = 3)


Dans la matrix()fonction :

Le premier argument est la collection d'éléments que R organisera dans les


lignes et les colonnes de la matrice. Ici, nous utilisons 1:9qui est un raccourci
pour c(1, 2, 3, 4, 5, 6, 7, 8, 9).
L'argument byrowindique que la matrice est remplie par les lignes. Si nous
voulons que la matrice soit remplie par les colonnes, il suffit de placer byrow =
FALSE.
Le troisième argument nrowindique que la matrice doit avoir trois lignes.
Instructions
Construisez une matrice avec 3 lignes contenant les nombres de 1 à 9, remplies
par ligne.
Analysez des matrices, vous
Il est maintenant temps de se salir les mains. Dans les exercices suivants, vous
analyserez les chiffres du box-office de la franchise Star Wars. Que la force soit
avec toi!

Dans l'éditeur, trois vecteurs sont définis. Chacun représente les numéros du
box-office des trois premiers films Star Wars. Le premier élément de chaque
vecteur indique le chiffre d'affaires du box-office américain, le deuxième
élément fait référence au box-office non américain (source : Wikipédia).

Dans cet exercice, vous combinerez toutes ces figures en un seul vecteur.
Ensuite, vous allez construire une matrice à partir de ce vecteur.
Instructions
Utilisez c(new_hope, empire_strikes, return_jedi)pour combiner les trois
vecteurs en un seul vecteur. Appelez ce vecteur box_office.
Construisez une matrice avec 3 lignes, où chaque ligne représente un film.
Utilisez la matrix()fonction pour le faire. Le premier argument est le vecteur
box_office, contenant tous les chiffres du box-office. Ensuite, vous devrez
spécifier nrow = 3et byrow = TRUE. Nommez la matrice résultante
star_wars_matrix.

Nommer une matrice


Pour vous aider à vous souvenir de ce qui est stocké dans star_wars_matrix,
vous souhaitez ajouter les noms des films pour les lignes. Non seulement cela
vous aide à lire les données, mais c'est aussi utile pour sélectionner certains
éléments de la matrice.

Semblable aux vecteurs, vous pouvez ajouter des noms pour les lignes et les
colonnes d'une matrice

rownames(my_matrix) <- row_names_vector


colnames(my_matrix) <- col_names_vector
Nous sommes allés de l'avant et avons préparé deux vecteurs pour vous : region,
et titles. Vous aurez besoin de ces vecteurs pour nommer respectivement les
colonnes et les lignes de star_wars_matrix.
Instructions
Utilisez colnames()pour nommer les colonnes de star_wars_matrixavec le
regionvecteur.
Utilisez rownames()pour nommer les lignes de star_wars_matrixavec le
titlesvecteur.
Imprimez star_wars_matrixpour voir le résultat de votre travail.

Calculer le box-office mondial


La chose la plus importante pour un film afin de devenir une légende instantanée
à Tinseltown, ce sont ses chiffres au box-office mondial.

Pour calculer le total des revenus du box-office pour les trois films Star Wars,
vous devez prendre la somme de la colonne des revenus américains et de la
colonne des revenus non américains.

Dans R, la fonction rowSums()calcule commodément les totaux pour chaque


ligne d'une matrice. Cette fonction crée un nouveau vecteur :

rowSums(my_matrix)
Instructions
Calculez les chiffres du box-office mondial pour les trois films et placez-les
dans le vecteur nommé worldwide_vector.

Ajout d'une rubrique pour le box-office Mondial


Dans l'exercice précédent, vous avez calculé le vecteur qui contenait le ticket de
caisse mondial pour chacun des trois films Star Wars. Cependant, ce vecteur ne
fait pas encore partie de star_wars_matrix.
Vous pouvez ajouter une colonne ou plusieurs colonnes à une matrice avec la
cbind()fonction, qui fusionne des matrices et/ou des vecteurs ensemble par
colonne. Par example:

big_matrix <- cbind(matrix1, matrix2, vector1 ...)


Instructions
Ajoutez en worldwide_vector tant que nouvelle colonne à star_wars_matrix et
attribuez le résultat à all_wars_matrix. Utilisez la cbind() fonction.

Après avoir ajouté une colonne à une matrice, la prochaine étape logique
consiste à ajouter des lignes. Apprenez comment dans le prochain exercice.

Ajout d'une ligne


Tout comme chaque action a une réaction, chaque cbind()a un rbind(). (Nous
admettons que nous sommes assez mauvais avec les métaphores.)

Votre espace de travail R, où toutes les variables que vous avez définies « vivent
» ( vérifiez ce qu'est un espace de travail ), a déjà été initialisé et contient deux
matrices :

star_wars_matrix que nous avons utilisé tout au long, avec des données sur la
trilogie originale,
star_wars_matrix2, avec des données similaires pour la trilogie prequels.
Explorez ces matrices dans la console si vous souhaitez les regarder de plus
près. Si vous souhaitez consulter le contenu de l'espace de travail, vous pouvez
taper ls()dans la console.
Instructions
Utilisez rbind() pour coller ensemble star_wars_matrixet star_wars_matrix2,
dans cet ordre. Affectez la matrice résultante à all_wars_matrix.
Continuez avec l'exercice suivant et voyez comment vous pouvez combiner les
résultats de la rbind()fonction avec la colSums()fonction !

Le total des revenus du box-office pour l'ensemble de la saga


Tout comme cbind()a rbind(), colSums()a rowSums(). Votre espace de travail R
contient déjà celui all_wars_matrixque vous avez construit dans l'exercice
précédent ; tapez all_wars_matrixpour avoir un autre regard. Calculons
maintenant le total des revenus du box-office pour l'ensemble de la saga.
Instructions
Calculez le chiffre d'affaires total pour les États-Unis et la région hors États-
Unis et attribuez total_revenue_vector. Vous pouvez utiliser la
colSums()fonction.
Imprimez total_revenue_vectorpour voir les résultats.

Passez à l'exercice suivant pour apprendre les sous-ensembles matriciels.

Sélection des éléments matriciels


Semblable aux vecteurs, vous pouvez utiliser les crochets [ ]pour sélectionner un
ou plusieurs éléments d'une matrice. Alors que les vecteurs ont une dimension,
les matrices ont deux dimensions. Vous devez donc utiliser une virgule pour
séparer les lignes que vous souhaitez sélectionner des colonnes. Par example:

my_matrix[1,2] sélectionne l'élément à la première ligne et à la deuxième


colonne.
my_matrix[1:3,2:4] résulte en une matrice avec les données sur les lignes 1, 2, 3
et les colonnes 2, 3, 4.
Si vous souhaitez sélectionner tous les éléments d'une ligne ou d'une colonne,
aucun numéro n'est nécessaire avant ou après la virgule, respectivement :

my_matrix[,1] sélectionne tous les éléments de la première colonne.


my_matrix[1,] sélectionne tous les éléments de la première ligne.
Retour à Star Wars avec ces connaissances nouvellement acquises ! Comme
dans l'exercice précédent, all_wars_matrixest déjà disponible dans votre espace
de travail.
Instructions
Sélectionnez les revenus non américains pour tous les films (toute la deuxième
colonne de all_wars_matrix), stockez le résultat sous la forme non_us_all.
Utilisez mean()sur non_us_allpour calculer le revenu moyen hors États-Unis
pour tous les films. Imprimez simplement le résultat.
Cette fois, sélectionnez les revenus non américains pour les deux premiers films
au format all_wars_matrix. Stockez le résultat en tant que non_us_some.
Utilisez à mean()nouveau pour imprimer la moyenne des valeurs dans
non_us_some.

# all_wars_matrix is available in your workspace


all_wars_matrix

# Select the non-US revenue for all movies


non_us_all <- all_wars_matrix[,2]

# Average non-US revenue


mean(non_us_all)

# Select the non-US revenue for first two movies


non_us_some <- all_wars_matrix[1:2,2]

# Average non-US revenue for first two movies


mean(non_us_some)

Un peu d'arithmétique avec des matrices


Semblable à ce que vous avez appris avec les vecteurs, les opérateurs standard
tels que +, -, /, *, etc. fonctionnent de manière élémentaire sur les matrices dans
R.

Par exemple, 2 * my_matrixmultiplie chaque élément de my_matrixpar deux.

En tant qu'analyste de données nouvellement embauché pour Lucasfilm, il est de


votre devoir de savoir combien de visiteurs sont allés à chaque film pour chaque
zone géographique. Vous avez déjà le chiffre d'affaires total au format
all_wars_matrix. Supposons que le prix d'un billet était de 5 dollars. Le simple
fait de diviser le nombre de billets par le prix du billet vous donne le nombre de
visiteurs.
Instructions
Divisez all_wars_matrix par 5, vous donnant le nombre de visiteurs en millions.
Affectez la matrice résultante à visitors.
Imprimez visitors pour pouvoir y jeter un œil.

Que vous disent ces résultats ? Un nombre impressionnant de 92 millions de


personnes sont allées voir A New Hope dans les cinémas américains ! Passez à
l'exercice suivant.

Un peu d'arithmétique avec des matrices (2)


Tout comme 2 * my_matrixmultiplié chaque élément de my_matrixpar deux,
my_matrix1 * my_matrix2crée une matrice où chaque élément est le produit des
éléments correspondants dans my_matrix1et my_matrix2.

Après avoir regardé le résultat de l'exercice précédent, le grand patron Lucas fait
remarquer que les prix des billets ont augmenté avec le temps. Il demande de
refaire l'analyse en fonction des prix que vous pouvez trouver dans
ticket_prices_matrix (source : imagination).
Ceux qui sont familiers avec les matrices doivent noter qu'il ne s'agit pas de la
multiplication matricielle standard que vous devez utiliser %*% dans R.

Instructions
Divisez all_wars_matrix par ticket_prices_matrix pour obtenir le nombre estimé
de visiteurs américains et non américains pour les six films. Attribuez le résultat
à visitors.
Dans la visitors matrice, sélectionnez l'intégralité de la première colonne,
représentant le nombre de visiteurs aux États-Unis. Stockez cette sélection en
tant que us_visitors.
Calculez le nombre moyen de visiteurs américains ; imprimer le résultat.

C'est un fait : la force R est avec vous ! Cet exercice conclut le chapitre sur les
matrices. Prochaine étape de votre voyage à travers le langage R : les facteurs.

4 – les facteurs
Les données appartiennent souvent à un nombre limité de catégories. Par
exemple, la couleur des cheveux humains peut être classée en noir, marron,
blond, rouge, gris ou blanc, et peut-être quelques options supplémentaires pour
les personnes qui se colorent les cheveux. Dans R, les données catégorielles sont
stockées dans des facteurs. Les facteurs sont très importants dans l'analyse des
données, alors commencez dès maintenant à apprendre à les créer, les sous-
ensemble et les comparer.

Qu'est-ce qu'un facteur et pourquoi l'utiliseriez-vous ?


Dans ce chapitre, vous plongez dans le monde merveilleux des facteurs .

Le terme facteur fait référence à un type de données statistiques utilisé pour


stocker des variables catégorielles. La différence entre une variable catégorielle
et une variable continue est qu'une variable catégorielle peut appartenir à un
nombre limité de catégories . Une variable continue, par contre, peut
correspondre à un nombre infini de valeurs.
Il est important que R sache s'il s'agit d'une variable continue ou catégorielle, car
les modèles statistiques que vous développerez à l'avenir traitent les deux types
différemment. (Vous verrez plus tard pourquoi c'est le cas.)

Un bon exemple de variable catégorielle est le sexe. Dans de nombreuses


circonstances, vous pouvez limiter les catégories de sexe à « Homme » ou «
Femme ». (Parfois, vous pouvez avoir besoin de catégories différentes. Par
exemple, vous devrez peut-être prendre en compte la variation chromosomique,
les animaux hermaphrodites ou différentes normes culturelles, mais vous aurez
toujours un nombre fini de catégories.)
Instructions
Affectez à la variable theoryla valeur "factors".

What's a factor and why would you use it? (2)


To create factors in R, you make use of the function factor(). First thing that you
have to do is create a vector that contains all the observations that belong to a
limited number of categories. For example, sex_vector contains the sex of 5
different individuals:

sex_vector <- c("Male","Female","Female","Male","Male")


It is clear that there are two categories, or in R-terms 'factor levels', at work here:
"Male" and "Female".

The function factor() will encode the vector as a factor:

factor_sex_vector <- factor(sex_vector)

Instructions
Convert the character vector sex_vector to a factor with factor() and assign the
result to factor_sex_vector
Print out factor_sex_vector and assert that R prints out the factor levels below
the actual values.
Si vous souhaitez en savoir plus sur la factor()fonction, n'hésitez pas à taper ?
factordans la console. Cela ouvrira une page d'aide. Passez à l'exercice suivant.

Qu'est-ce qu'un facteur et pourquoi l'utiliseriez-vous ? (3)


Il existe deux types de variables catégorielles : une variable catégorielle
nominale et une variable catégorielle ordinale .

Une variable nominale est une variable catégorielle sans ordre implicite. Cela
signifie qu'il est impossible de dire que « l'un vaut plus que l'autre ». Par
exemple, pensez à la variable catégorielle animals_vectoravec les catégories
"Elephant", "Giraffe", "Donkey"et "Horse". Ici, il est impossible de dire que l'un
se situe au-dessus ou au-dessous de l'autre. (Notez que certains d'entre vous
pourraient ne pas être d'accord ;-) ).

En revanche, les variables ordinales ont un ordre naturel. Considérons par


exemple la variable catégorielle temperature_vectoravec les catégories : "Low",
"Medium"et "High". Ici, il est évident que "Medium"se tient au "Low"- dessus ,
et "High"se tient au-dessus "Medium".
Instructions
Soumettez la réponse pour vérifier comment R construit et imprime les variables
nominales et ordinales. Ne vous inquiétez pas si vous ne comprenez pas encore
tout le code, nous y viendrons.

Niveaux de facteur
Lorsque vous obtenez un ensemble de données pour la première fois, vous
remarquerez souvent qu'il contient des facteurs avec des niveaux de facteurs
spécifiques. Cependant, vous souhaiterez parfois modifier les noms de ces
niveaux pour plus de clarté ou pour d'autres raisons. R vous permet de le faire
avec la fonction levels():

levels(factor_vector) <- c("name1", "name2",...)


Une bonne illustration est les données brutes qui vous sont fournies par une
enquête. Une question commune à chaque questionnaire est le sexe du
répondant. Ici, par souci de simplicité, seules deux catégories ont été
enregistrées, "M"et "F". (Vous avez généralement besoin de plus de catégories
pour les données d'enquête ; dans les deux cas, vous utilisez un facteur pour
stocker les données catégorielles.)

survey_vector <- c("M", "F", "F", "M", "M")


Enregistrement du sexe avec les abréviations "M"et "F"peut être pratique si vous
collectez des données avec un stylo et du papier, mais il peut introduire la
confusion lors de l' analyse des données. À ce stade, vous souhaiterez souvent
modifier les niveaux de facteur pour "Male"et "Female"au lieu de "M"et "F"pour
plus de clarté.

Attention : l'ordre dans lequel vous attribuez les niveaux est important. Si vous
tapez levels(factor_survey_vector), vous verrez qu'il affiche [1] "F" "M". Si
vous ne spécifiez pas les niveaux du facteur lors de la création du vecteur, Rles
affectera automatiquement par ordre alphabétique. Pour mapper correctement
"F"vers "Female"et "M"vers "Male", les niveaux doivent être définis sur
c("Female", "Male"), dans cet ordre.
Instructions
Découvrez le code qui construit un vecteur de facteur à partir de survey_vector.
Vous devriez utiliser factor_survey_vectordans l'instruction suivante.
Modifiez les niveaux de facteur de factor_survey_vectorà c("Female", "Male").
Attention à l'ordre des éléments vectoriels ici.

Résumer un facteur
Après avoir terminé ce cours, l'une de vos fonctions préférées dans R sera
summary(). Cela vous donnera un aperçu rapide du contenu d'une variable :

summary(my_var)
Pour en revenir à notre enquête, vous aimeriez savoir combien de
"Male"réponses vous avez dans votre étude, et combien de "Female"réponses.
La summary()fonction vous donne la réponse à cette question.
Instructions
Demandez a summary()des survey_vectoret factor_survey_vector. Interpréter
les résultats des deux vecteurs. Sont-ils tous les deux également utiles dans ce
cas?
Jetez un œil à la sortie. Le fait que vous ayez identifié "Male"et "Female"comme
niveaux de facteur dans factor_survey_vectorpermet à R d'afficher le nombre
d'éléments pour chaque catégorie.

Bataille des sexes


Vous pourriez vous demander ce qui se passe lorsque vous essayez de comparer
les éléments d'un facteur. Dans factor_survey_vectorvous avez un facteur à deux
niveaux : "Male"et "Female". Mais comment R les évalue-t-il les uns par rapport
aux autres ?
Instructions
Lisez le code dans l' éditeur et soumettez la réponse pour tester si maleest
supérieur à ( >) female.
Par défaut, R est renvoyé NAlorsque vous essayez de comparer les valeurs d'un
facteur, car l'idée n'a pas de sens. Vous découvrirez ensuite les facteurs
ordonnés, où des comparaisons plus significatives sont possibles.

Facteurs ordonnés
Puisque "Male"et "Female"sont des niveaux de facteur non ordonnés (ou
nominaux), R renvoie un message d'avertissement, vous indiquant que
l'opérateur supérieur à n'a pas de sens. Comme vu précédemment, R attache une
valeur égale aux niveaux de ces facteurs.

Mais ce n'est pas toujours le cas ! Parfois, vous traiterez également de facteurs
qui ont un ordre naturel entre ses catégories. Si tel est le cas, nous devons nous
assurer que nous transmettons cette information à R…
Supposons que vous dirigez une équipe de recherche de cinq analystes de
données et que vous souhaitez évaluer leurs performances. Pour ce faire, vous
suivez leur vitesse, évaluez chaque analyste comme "slow", "medium"ou "fast",
et enregistrez les résultats dans speed_vector.
Instructions
Dans un premier temps, attribuez speed_vectorun vecteur avec 5 entrées, une
pour chaque analyste. Chaque entrée doit être soit "slow", "medium", soit "fast".
Utilisez la liste ci-dessous :

L'analyste 1 est moyen,


L'analyste 2 est lent,
L'analyste 3 est lent,
Analyste 4 est moyen et
L'analyste 5 est rapide.
Pas besoin de préciser ce sont des facteurs pour le moment.

Facteurs ordonnés (2)


speed_vectordoit être converti en un facteur ordinal puisque ses catégories ont
un ordre naturel. Par défaut, la fonction se factor()transforme speed_vectoren un
facteur non ordonné. Pour créer un facteur ordonné, vous devez ajouter deux
arguments supplémentaires : orderedet levels.

factor(some_vector,
ordered = TRUE,
levels = c("lev1", "lev2" ...))
En définissant l'argument ordered sur TRUE dans la fonction factor(), vous
indiquez que le facteur est ordonné. Avec l'argument, levels vous donnez les
valeurs du facteur dans le bon ordre.
Instructions
A partir de speed_vector, créez un vecteur de facteur ordonné :
factor_speed_vector. Réglez orderedsur TRUE, et réglez levels sur
c("slow", "medium", "fast").

Jetez un œil à la console. Il est maintenant indiqué que les Niveaux ont bien un
ordre associé, au <signe. Passez à l'exercice suivant.

Comparer des facteurs ordonnés


Ayant une mauvaise journée au travail, « l'analyste de données numéro deux »
entre dans votre bureau et commence à se plaindre que « l'analyste de données
numéro cinq » ralentit l'ensemble du projet. Puisque vous savez que « l'analyste
de données numéro deux » a la réputation d'être un smarty-pants, vous décidez
d'abord de vérifier si sa déclaration est vraie.

Le fait qu'il factor_speed_vector soit désormais ordonné permet de comparer


différents éléments (les data analysts en l'occurrence). Vous pouvez simplement
le faire en utilisant les opérateurs bien connus.
Instructions
Utilisez [2]pour sélectionner factor_speed_vector la valeur du facteur pour le
deuxième analyste de données. Stockez-le en tant que da2.
Utilisez [5]pour sélectionner la factor_speed_vectorvaleur du facteur pour le
cinquième analyste de données. Stockez-le en tant que da5.
Vérifiez si da2est supérieur à da5; imprimez simplement le résultat. N'oubliez
pas que vous pouvez utiliser l' >opérateur pour vérifier si un élément est plus
grand que l'autre.
Que vous dit le résultat ? L'analyste de données deux se plaint de l'analyste de
données cinq alors qu'en fait c'est lui qui ralentit tout ! Ceci conclut le chapitre
sur les facteurs. Avec une base solide en vecteurs, matrices et facteurs, vous êtes
prêt à plonger dans le monde merveilleux des trames de données, une structure
de données très importante dans R !
5- Trames de données
La plupart des ensembles de données avec lesquels vous travaillerez seront
stockés sous forme de blocs de données. À la fin de ce chapitre, vous serez
capable de créer un bloc de données, de sélectionner des parties intéressantes
d'un bloc de données et de commander un bloc de données en fonction de
certaines variables.

Qu'est-ce qu'une trame de données ?


Vous vous souvenez peut-être du chapitre sur les matrices que tous les éléments
que vous mettez dans une matrice doivent être du même type. À l'époque, votre
ensemble de données sur Star Wars ne contenait que des éléments numériques.

Cependant, lorsque vous effectuez une étude de marché, vous vous posez
souvent des questions telles que :

'Es-tu marié?' ou des questions 'oui/non' ( logical)


'Quel âge as-tu?' ( numeric)
« Quelle est votre opinion sur ce produit ? » ou d'autres questions "ouvertes"
( character)

Le résultat, à savoir les réponses des répondants aux questions formulées ci-
dessus, est un ensemble de données de différents types de données. Vous vous
retrouverez souvent à travailler avec des ensembles de données contenant
différents types de données au lieu d'un seul.

Un bloc de données a les variables d'un ensemble de données sous forme de


colonnes et les observations sous forme de lignes. Ce sera un concept familier
pour ceux qui proviennent de différents progiciels statistiques tels que SAS ou
SPSS.
Instructions
Soumettez la réponse. Les données de l'exemple de bloc de données intégré
mtcarsseront imprimées sur la console.
Alors, qu'avons-nous dans cet ensemble de données ? Par exemple, hpreprésente
la puissance de la voiture ; la Datsun a la puissance la plus faible des 6 voitures
exposées. Pour un aperçu complet de la signification des variables, tapez ?
mtcarsdans la console et lisez la page d'aide. Passez à l'exercice suivant !
Vite, jetez un œil à votre jeu de données
Wow, ça fait beaucoup de voitures !

Travailler avec de grands ensembles de données n'est pas rare dans l'analyse de
données. Lorsque vous travaillez avec des ensembles de données et des blocs de
données (extrêmement) volumineux, votre première tâche en tant qu'analyste de
données consiste à développer une compréhension claire de sa structure et de ses
principaux éléments. Par conséquent, il est souvent utile de n'afficher qu'une
petite partie de l'ensemble des données.

Alors, comment faire cela dans R? Eh bien, la fonction head() vous permet de
montrer les premières observations d'un bloc de données. De même, la fonction
tail() imprime les dernières observations de votre ensemble de données.

Les deux head()et tail() imprimez une ligne supérieure appelée « en-tête », qui
contient les noms des différentes variables de votre ensemble de données.
Instructions
Faites appel head()à l' mtcars ensemble de données pour consulter l'en-tête et les
premières observations.

Jetez un œil à la structure


Une autre méthode souvent utilisée pour obtenir un aperçu rapide de vos
données est la fonction str(). La fonction str()vous montre la structure de votre
ensemble de données. Pour une trame de données, il vous indique :

Le nombre total d'observations (par exemple 32 types de voitures)


Le nombre total de variables (par exemple 11 caractéristiques de la voiture)
Une liste complète des noms de variables (par exemple mpg, cyl… )
Le type de données de chaque variable (par exemple num)
Les premiers constats
L'application de la str()fonction sera souvent la première chose à faire lors de la
réception d'un nouvel ensemble de données ou d'une nouvelle trame de données.
C'est un excellent moyen d'obtenir plus d'informations sur votre ensemble de
données avant de plonger dans l'analyse réelle.
Instructions
Enquêter sur la structure de mtcars. Assurez-vous que vous voyez les mêmes
nombres, variables et types de données que ceux mentionnés ci-dessus.

Création d'un bloc de données


Étant donné que l'utilisation d'ensembles de données intégrés n'est même pas la
moitié du plaisir de créer vos propres ensembles de données, le reste de ce
chapitre est basé sur votre ensemble de données développé personnellement.
Mettez votre jet pack car c'est l'heure de l'exploration spatiale !

Dans un premier temps, vous souhaitez construire une base de données décrivant
les principales caractéristiques de huit planètes de notre système solaire. Selon
votre bon ami Buzz, les principales caractéristiques d'une planète sont :

Le type de planète (terrestre ou géante gazeuse).


Le diamètre de la planète par rapport au diamètre de la Terre.
La rotation de la planète autour du soleil par rapport à celle de la Terre.
Si la planète a des anneaux ou non (VRAI ou FAUX).
Après avoir effectué des recherches de haute qualité sur Wikipedia , vous vous
sentez suffisamment en confiance pour créer les vecteurs nécessaires : name,
type, diameter, rotationet rings; ces vecteurs ont déjà été codés dans l'éditeur. Le
premier élément de chacun de ces vecteurs correspond à la première
observation.

Vous construisez un bloc de données avec la data.frame() fonction. En


arguments, vous passez les vecteurs d'avant : ils deviendront les différentes
colonnes de votre data frame. Étant donné que chaque colonne a la même
longueur, les vecteurs que vous transmettez doivent également avoir la même
longueur. Mais n'oubliez pas qu'il est possible (et probable) qu'ils contiennent
différents types de données.
Instructions
Utilisez la fonction data.frame()pour construire un bloc de données. Passez les
vecteurs name, type, diameter, rotationet ringscomme arguments à data.frame(),
dans cet ordre. Appelez la trame de données résultante planets_df.

Création d'un bloc de données (2)


La base de planets_dfdonnées doit comporter 8 observations et 5 variables. Il a
été mis à disposition dans l'espace de travail, vous pouvez donc l'utiliser
directement.
Instructions
À utiliser str()pour étudier la structure de la nouvelle planets_dfvariable.

Maintenant que vous avez une compréhension claire de l' planets_dfensemble de


données, il est temps de voir comment vous pouvez sélectionner des éléments à
partir de celui-ci. Apprenez tout dans les prochains exercices!

Sélection des éléments du bloc de données


Comme pour les vecteurs et les matrices, vous sélectionnez des éléments dans
un bloc de données à l'aide de crochets [ ]. En utilisant une virgule, vous pouvez
indiquer ce qu'il faut sélectionner dans les lignes et les colonnes respectivement.
Par example:

my_df[1,2]sélectionne la valeur de la première ligne et de la deuxième colonne


dans my_df.
my_df[1:3,2:4]sélectionne les lignes 1, 2, 3 et les colonnes 2, 3, 4 dans my_df.
Parfois, vous souhaitez sélectionner tous les éléments d'une ligne ou d'une
colonne. Par exemple, my_df[1, ]sélectionne tous les éléments de la première
ligne. Appliquons maintenant cette technique sur planets_df!
Instructions
A partir de planets_df, sélectionnez le diamètre de Mercure : il s'agit de la valeur
de la première ligne et de la troisième colonne. Imprimez simplement le résultat.
À partir de planets_df, sélectionnez toutes les données sur Mars (la quatrième
ligne). Imprimez simplement le résultat.
Sélection des éléments du bloc de données (2)
Au lieu d'utiliser des chiffres pour sélectionner les éléments d'un bloc de
données, vous pouvez également utiliser les noms de variables pour sélectionner
les colonnes d'un bloc de données.

Supposons que vous vouliez sélectionner les trois premiers éléments de la


typecolonne. Une façon de faire est

planets_df[1:3,2]
Un inconvénient possible de cette approche est que vous devez connaître (ou
rechercher) le numéro de colonne de type, ce qui devient difficile si vous avez
beaucoup de variables. Il est souvent plus facile d'utiliser simplement le nom de
la variable :

planets_df[1:3,"type"]
Instructions
Sélectionnez et imprimez les 5 premières valeurs de la "diameter"colonne de
planets_df.

Seules les planètes avec des anneaux


Vous souhaiterez souvent sélectionner une colonne entière, à savoir une variable
spécifique d'un bloc de données. Si vous souhaitez sélectionner tous les
éléments de la variable diameter, par exemple, les deux feront l'affaire :

planets_df[,3]
planets_df[,"diameter"]
Cependant, il existe un raccourci. Si vos colonnes ont des noms, vous pouvez
utiliser le $signe :

planets_df$diameter
Instructions
Utilisez le $signe pour sélectionner la ringsvariable dans planets_df. Stockez le
vecteur qui en résulte sous la forme rings_vector.
Imprimez rings_vectorpour voir si vous avez bien compris.

Seules les planètes avec des anneaux (2)


Vous vous souvenez probablement du lycée que certaines planètes de notre
système solaire ont des anneaux et d'autres non. Malheureusement, vous ne
pouvez pas vous rappeler leurs noms. R pourrait-il vous aider ?

Si vous tapez rings_vectordans la console, vous obtenez :

[1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE


Cela signifie que les quatre premières observations (ou planètes) n'ont pas
d'anneau ( FALSE), mais les quatre autres en ont ( TRUE). Cependant, vous
n'obtenez pas un bon aperçu des noms de ces planètes, de leur diamètre, etc.
Essayons d'utiliser rings_vectorpour sélectionner les données pour les quatre
planètes avec des anneaux.
Instructions
Le code dans l'éditeur sélectionne la namecolonne de toutes les planètes qui ont
des anneaux. Adaptez le code de sorte qu'au lieu de seulement la namecolonne,
toutes les colonnes des planètes qui ont des anneaux soient sélectionnées.

Seules les planètes avec des anneaux mais plus courtes


Alors, qu'avez-vous appris exactement dans les exercices précédents ? Vous
avez sélectionné un sous-ensemble d'un bloc de données ( planets_df) selon
qu'une certaine condition était vraie ou non (sonneries ou pas de sonneries), et
vous avez réussi à extraire toutes les données pertinentes. Plutot cool! A l'heure
actuelle, la NASA est probablement déjà en train de flirter avec votre CV ;-).
Maintenant, montons d'un niveau et utilisons la fonction subset(). Vous devriez
voir la subset()fonction comme un raccourci pour faire exactement la même
chose que ce que vous avez fait dans les exercices précédents.

subset(my_df, subset = some_condition)


Le premier argument de subset()spécifie l'ensemble de données pour lequel vous
voulez un sous-ensemble. En ajoutant le deuxième argument, vous donnez à R
les informations et les conditions nécessaires pour sélectionner le sous-ensemble
correct.

Le code ci-dessous donnera exactement le même résultat que dans l'exercice


précédent, mais cette fois, vous n'aviez pas besoin du rings_vector!

subset(planets_df, subset = rings)


Instructions
Utilisez subset()sur planets_dfpour sélectionner des planètes dont le diamètre est
inférieur à celui de la Terre. Parce que la diametervariable est une mesure
relative du diamètre de la planète par rapport à celui de la planète Terre, votre
condition est diameter < 1.
Non seulement la subset()fonction est plus concise, mais elle est probablement
aussi plus compréhensible pour les personnes qui lisent votre code. Passez à
l'exercice suivant.

Tri
Faire et créer des classements est l'une des affaires préférées de l'humanité. Ces
classements peuvent être utiles (meilleures universités du monde), divertissants
(stars de cinéma les plus influentes) ou inutiles (meilleur sosie de 007).

Dans l'analyse des données, vous pouvez trier vos données en fonction d'une
certaine variable dans l'ensemble de données. Dans R, cela se fait à l'aide de la
fonction order().

order() est une fonction qui vous donne la position classée de chaque élément
lorsqu'il est appliqué sur une variable, comme un vecteur par exemple :
a <- c(100, 10, 1000)
order(a)
[1] 2 1 3
10, qui est le deuxième élément de a, est le plus petit élément, donc 2 vient en
premier dans la sortie de order(a). 100, qui est le premier élément dans aest le
deuxième plus petit élément, donc 1 vient en deuxième dans la sortie de
order(a).

Cela signifie que nous pouvons utiliser la sortie de order(a)pour remanier a:

a[order(a)]
[1] 10 100 1000
Instructions
Expérimentez avec la order() fonction dans la console. Soumettez la réponse
lorsque vous êtes prêt à continuer.
Utilisons maintenant la order() fonction pour trier votre bloc de données !

Trier votre bloc de données


D'accord, maintenant que vous comprenez la order()fonction, faisons quelque
chose d'utile avec elle. Vous souhaitez réorganiser votre bloc de données de
manière à ce qu'il commence par la plus petite planète et se termine par la plus
grande. Un tri sur la diameter colonne.
Instructions
Appelez order()le planets_df$diameter(la diameter colonne planets_df). Stockez
le résultat en tant que positions.
Maintenant, remaniez planets_dfle positions vecteur en tant qu'index de ligne
entre crochets. Conservez toutes les colonnes. Imprimez simplement le résultat.
Cet exercice conclut le chapitre sur les trames de données. N'oubliez pas que les
trames de données sont extrêmement importantes dans R, vous en aurez besoin
tout le temps. Une autre structure de données très souvent utilisée est la liste. Ce
sera le sujet du prochain chapitre !
6-Listes

Contrairement aux vecteurs, les listes peuvent contenir des composants de


différents types, tout comme vos listes de tâches peuvent contenir différentes
catégories de tâches. Ce chapitre vous apprendra comment créer, nommer et
sous-ensemble ces listes.

Les listes, pourquoi en auriez-vous besoin ?


Toutes nos félicitations! À ce stade du cours, vous connaissez déjà :

Vecteurs (tableau à une dimension) : peuvent contenir des valeurs numériques,


de caractère ou logiques. Les éléments d'un vecteur ont tous le même type de
données.
Matrices (tableau à deux dimensions) : peuvent contenir des valeurs numériques,
de caractère ou logiques. Les éléments d'une matrice ont tous le même type de
données.
Trames de données (objets bidimensionnels) : peuvent contenir des valeurs
numériques, de caractères ou logiques. Dans une colonne, tous les éléments ont
le même type de données, mais différentes colonnes peuvent être de types de
données différents.
Plutôt sympa pour un débutant R, non ? ;-)
Instructions
Soumettez la réponse pour commencer à tout apprendre sur les listes !

Les listes, pourquoi en auriez-vous besoin ? (2)


Une liste en R est similaire à votre liste de choses à faire au travail ou à l'école :
les différents éléments de cette liste diffèrent très probablement par leur
longueur, leurs caractéristiques et le type d'activité à effectuer.
Une liste dans R vous permet de rassembler une variété d'objets sous un même
nom (c'est-à-dire le nom de la liste) de manière ordonnée. Ces objets peuvent
être des matrices, des vecteurs, des trames de données, voire d'autres listes, etc.
Il n'est même pas nécessaire que ces objets soient liés les uns aux autres de
quelque manière que ce soit.

On pourrait dire qu'une liste est une sorte de super type de données : vous
pouvez y stocker pratiquement n'importe quelle information !
Instructions
Il suffit de soumettre la réponse pour commencer le premier exercice sur les
listes.

Création d'une liste


Créons notre première liste ! Pour construire une liste, vous utilisez la fonction
list():

my_list <- list(comp1, comp2 ...)


Les arguments de la fonction de liste sont les composants de liste. Rappelez-
vous, ces composants peuvent être des matrices, des vecteurs, d'autres listes, …
Instructions
Construisez une liste, nommée my_list, qui contient les variables my_vector,
my_matrixet en my_dftant que composants de liste.

Créer une liste nommée


Bravo, vous êtes sur une lancée !

Tout comme sur votre liste de choses à faire, vous voulez éviter de ne pas savoir
ou de ne pas vous souvenir de ce que représentent les composants de votre liste.
C'est pourquoi vous devez leur donner des noms :

my_list <- list(name1 = your_comp1,


name2 = your_comp2)
Cela crée une liste avec des composants nommés name1, name2, et ainsi de
suite. Si vous souhaitez nommer vos listes après les avoir créées, vous pouvez
utiliser la names()fonction comme vous l'avez fait avec les vecteurs. Les
commandes suivantes sont entièrement équivalentes à l'affectation ci-dessus :

my_list <- list(your_comp1, your_comp2)


names(my_list) <- c("name1", "name2")
Instructions
Modifiez le code de l'exercice précédent (voir éditeur) en ajoutant des noms aux
composants. Utilisez pour my_vectorle nom vec, pour my_matrixle nom matet
pour my_dfle nom df.
Imprimez my_listafin que vous puissiez inspecter la sortie.

Créer une liste nommée (2)


Étant un grand fan de cinéma (rappelez-vous votre travail chez LucasFilms),
vous décidez de commencer à stocker des informations sur de bons films à l'aide
de listes.

Commencez par créer une liste pour le film "The Shining". Nous avons déjà créé
les variables mov, actet revdans votre espace de travail R. N'hésitez pas à les
consulter dans la console.
Instructions
Complétez le code dans l'éditeur pour créer shining_list; il contient trois
éléments :

moviename: une chaîne de caractères avec le titre du film (stocké dans mov)
actors: un vecteur avec les noms des acteurs principaux (stocké dans act)
reviews: une base de données qui contient des avis (stockés dans rev)
N'oubliez pas de nommer les composants de la liste en conséquence (les noms
sont moviename, actorset reviews).
Sélection d'éléments dans une liste
Votre liste sera souvent construite à partir de nombreux éléments et composants.
Par conséquent, en extraire un seul élément, plusieurs éléments ou un composant
n'est pas toujours simple.

Une façon de sélectionner un composant consiste à utiliser la position numérotée


de ce composant. Par exemple, pour "saisir" le premier composant de
shining_listvotre saisie
shining_list[[1]]
Un moyen rapide de vérifier cela est de le taper dans la console. Important à
retenir : pour sélectionner des éléments à partir de vecteurs, vous utilisez des
crochets simples : [ ]. Ne les mélangez pas !
Vous pouvez également vous référer aux noms des composants, avec [[ ]]ou
avec le $signe. Les deux sélectionneront la base de données représentant les
avis:
shining_list[["reviews"]]
shining_list$reviews
Outre la sélection de composants, vous devez souvent sélectionner des éléments
spécifiques parmi ces composants. Par exemple, avec shining_list[[2]][1]vous
sélectionnez parmi le deuxième composant, actors( shining_list[[2]]), le premier
élément ( [1]). Lorsque vous tapez ceci dans la console, vous verrez que la
réponse est Jack Nicholson.
Instructions
Choisissez parmi shining_listle vecteur représentant les acteurs. Imprimez
simplement ce vecteur.
Sélectionnez dans shining_listle deuxième élément du vecteur représentant les
acteurs. Faites une impression comme avant.
Créer une nouvelle liste pour un autre film
Vous avez trouvé des critiques d'un autre film plus récent de Jack Nicholson :
The Departed !

Notes commentaires
4.6 je le regarderais encore
5 Étonnante!
4.8 Je l'ai aimé
5 L'un des meilleurs films
4.2 Intrigue fascinante
Il serait utile de rassembler toutes les informations sur le film, comme le titre,
les acteurs et les critiques en une seule variable. Étant donné que ces données
sont de formes différentes, il est naturel de les combiner dans une variable de
liste.

movie_title, contenant le titre du film, et movie_actors, contenant les noms de


certains des acteurs du film, sont disponibles dans votre espace de travail.
Instructions
Créez deux vecteurs, appelés scores et comments, qui contiennent les
informations des avis indiqués dans le tableau.
Trouvez la moyenne du scoresvecteur et enregistrez-la sous le format
avg_review.
Combinez les vecteurs scoreset commentsdans un bloc de données appelé
reviews_df.
Créez une liste, appelée departed_list, qui contient le movie_title, movie_actors,
le bloc de données d'examens en tant que reviews_df, et le score d'examen
moyen en tant que avg_review, et imprimez-le.
Bon travail! Vous avez réussi à créer une autre liste d'informations sur le film et
à combiner différents composants en une seule liste. Félicitations pour avoir
terminé le cours!
Fin du cours

Vous aimerez peut-être aussi