Vous avez déjà appris l'essentiel des connaissances utiles à avoir sur le langage R lors des deux sections précédentes : vous savez utiliser les principaux objets simples (vecteurs, listes), créer des fonctions, mettre en place des boucles et structures de contrôles depuis la partie II. La partie III vous à familliarisé avec la notion d'objets et de classe et vous à présentée les classes les plus courantes en R, donc les plus importantes sont sans doute les dataframe (de loin) et les facteurs.
Dans cette partie quatre, nous allons plutôt nous concentrer sur les connaissances "annexes" qui vont vous aider à bien programmer en R : comment régler R Studio, comment débuger son code, comment installer et utiliser des packages, ainsi que comment découper son code en modules.
4.1 Session de travail, gestion des objets et autre
Gestion du répertoire de travail
Dans RStudio, votre répertoire de travail est le dossier sur votre ordinateur a partir duquel R va considéré que vous travailler. C'est utile en particulier pour que R puisse savoir où lire et sauvegarder des fichiers. Par exemple, si vous lui dite d'enregistrer une image "image1.png"
, il l'enregistera non pas à la racine de votre ordinateur, mais à la racine de votre dossier de travail. De même, si vous lui dites de lire le fichier de données "sources/data.svg"
, R ira chercher le fichier data.svg
dans le dossier "sources"
qui se trouvera dans votre dossier de travail.
Pour choisir votre dossier de travail, il vous suffit de cliquer sur le menu "session", puis "set working directory" puis "choose working directory" et de choisir le dossier qui vous convient.
Changer le répertoire de travail via une commande
Vous pouvez aussi changer votre répertoire de travail via la commande setwd()
, qui signifie set working directory.
setwd("C:\Users\utilisateur1\Documents\projet1")
Il est souvent plus rapide d'utiliser directement le menu set working directory
que de passer par cette commande.
Choisir le repertoire de travail d'un fichier
Il existe enfin une autre façon de changer de repértoire de travail, qui consiste à dire à R de prendre comme repertoire de travail le fichier du script actuellement ouvert. C'est très pratique pour modifier le répertoire quand vous venez travailler sur un autre projet dont vous vennez d'ouvrir le script.
Pour cela il vous suffit de cliquer sur "session" > "set working directory" > "to Source File Location". La console va alors afficher la comande correspondant et indiquer le changement de répertoire.
Obtenir le répertoire de travail
Pour afficher le chemin vers le répertoire de travail actuel, vous pouvez utiliser la commande getwd()
:
getwd() #affiche le chemin du répertoire de travail dans la console
Cette commande est toujours pratique pour vérifier que vous êtes bien dans le bon dossier de travail quand vous jonglez entre les projets.
Sauvegarde de la session de travail
Supposons que vous êtes un statisticien expérimenté. Vous devez écrire un programme compliqué qui traite des données, puis produit des graphiques à partir de ces données. Vous avez écrit le code qui vous permet de traiter les données, et vous l'avez enregistré dans un fichier de script .R. Le seul problème est que le traitement des données est long : votre script met plusieurs heures avant d'être exécuté, car vous traitez beaucoup de données.
Vous savez que écrire le code concernant la visualisation va vous prendre plusieurs jours, et vous êtes obligé de fermer votre ordinateur chaque soir. Chaque matin, vous devez ouvrir votre fichier .R, lancer les instructions de traitement de données, attendre le résultat, et continuer à travailler avec vos données. Ce n'est pas très pratique.
Heureusement pour nous, il est possible de sauvegarder l'environnement à un moment donnée, c'est à dire l'ensemble des variables de l'environnement. Regardons comment faire. Supposons que vous avons réalisé un gros travail :On imagine ici que notre variable data
est importante, et a pris beaucoup de temps à calculer. Nous aimerons donc pouvoir sauvegarder notre travail en l'état, à savoir notre script et notre environnement qui contient nos différentes variables déjà calcuées.
Sauvegarde via le menu
Pour créer un fichier de sauvegarde de votre session, il suffit d'aller dans session
et save workshop as
, puis de donner un nom au fichier de sauvegarde. Nous vous conseillons de créer le fichier à l'emplacement prévu par défaut, c'est à dire à la racine de votre répertoire de travail.
Le fichier créer va se terminer par l'extention .RData, et aura une petite icone facile à identifier.
Lors ce que vous ouvrirez ce fichier, il contiendra votre session exactement en l'état dans laquelle vous l'avez laissée : les fichiers ouverts, les objets de l'environnement, etc.
Sauvegarde via une commande
Il est aussi possible de demander la sauvegarde de votre session de travail à l'aide d'une instruction en R, entrée dans la console ou exécutée via un script. Il vous suffit d'utiliser la fonction safe.image()
:
save.image("~/monSuperTravail.RData") #On save dans le répertoire de travail
N'oubliez pas d'écrire l'extension .RData à la fin de votre nom de fichier, sinon la commande ne marchera pas.
Si vous avez utilisé la sauvegarde via le menu, vous avez du remarqué que ce menu n'est qu'un simple raccourçis via cette instruction ! Cette dernière s'affiche dans la console après la sauvegarde via le menu, le menu vous permettant simplement de lançer cette instruction de façon "cachée".
Sauvegarde en sortie de RStudio
Si vous n'avez pas créee de sauvegarde de votre session de travail, au moment de quitter RStudio, une fenêtre va apparaitre pour vous demander si vous souhaitez sauvegarder la session :
Il vous suffit de cliquer sur Save
pour qu'un fichier de sauvegarde de votre session de travail .RData soit créee. Ce fichier sera enregistré dans votre dossier de travail. Il n'aura alors aucun nom, seulement l'extension .RData.
Remarque : Cette méthode n'est pas forcement conseillée, car il sera impossible de nommer votre fichier. De plus, si votre ordinateur a un problème et ferme R Studio, alors votre session n'aura pas été sauvegardée. Nous vous conseillons donc de sauvegarder manuellement votre session via la commande ou le menu quand vous en avez besoin.
Retrouver sa session
Pour retrouver votre session de travail en l'état, il vous suffit de double-cliquer sur le fichier .RData que vous avez créee. Une fenêtre vous demandera alors peut-être de choisir le logiciel avec lequel ouvrir ce fichier. Choissiez R Studio. Il est aussi possible que votre ordinateur décide d'ouvrir ce fichier avec autre chose que R Studio, ce qui n'est pas ce que nous voulons. Il faut alors simplement faire "clic droit > ouvrir avec > R Studio".
Une fois le fichier ouvert, vous devriez retrouver votre session de travail exactement dans le même état où vous l'aviez laissée !
Notre variable data
qui nous avait demandée tant de temps à calculée est bien là ! Nous pouvons continuer à travailler directement.
Gestion des objets de la console
Nous allons voir ici quelques commandes pratiques qui peuvent vous faciliter la vie.
Nettoyer la console
Si vous avez une liste trop longue d'instruction qui s'accumulent dans votre console, vous pouvez tout simplement utiliser la combinaison de touches ctrl + L
.L'historique de votre console sera alors tout neuf !
Je veux nettoyer ma console :Un petit coup de ctrl + L
:
Une console toute propre !
Lister les objets de l'environnement
Vous pouvez utiliser la fonction ls()
pour lister tous les objets qui existent actuellement dans votre environnement. Ici j'ai deux objets dans mon environnement :
On peut lister leur nom :Notez que la fonction ls()
renvoit un vecteur de chaines, contenant les noms des objets existants.
Nettoyer l'environnement
Vous pouvez supprimer des objets présents dans l'environnement, via l'instrution rm()
. Cette instruction prend en paramétre u vecteur de chaines contenant les noms des objets à supprimer. Pour supprimer tous les objets, il vous suffit de faire :
rm(ls()) #on recupere les nom de tous les objets avec ls() et on les supprime avec rm() !
Vous pouvez aussi utiliser directement l'interface de l'onglet environment
pour supprimer un ou plusieurs objets. C'est souvent plus pratique que de passer par la commande rm()
. Il arrive néanmoins de trouver cette instruction rm(ls())
en début de certains scripts. Cela permet de s'assurer que avant d'exécuter le script toute l'environnement sera nettoyé, et d'éviter qu'une variable existante avant ne viennent interféré avec le nouveau script.